Eine sehr wertvolle Eigenschaft funktionaler Schnittstellen ist, dass sie mit Lambdas instanziiert werden können. Hier sind einige Beispiele für Lambdas:
Links ist eine durch Kommas getrennte Liste von Eingaben des angegebenen Typs und rechts ist ein Codeblock mit Rückgabe:
(int x, int y) -> { return x + y; }
Ein Die linke Seite ist eine durch Kommas getrennte Liste der abgeleiteten Typen. Eingabeliste, die rechte Seite ist der Rückgabewert:
(x, y) -> x + y
Die linke Seite ist ein einzelner Parameter des Ableitungstyps, die rechte Seite ist ein Rückgabewert :
x -> x * x
Auf der linken Seite gibt es keine Eingabe (offizieller Name: „Burgerpfeil“), auf der rechten Seite wird ein Wert zurückgegeben:
() -> x
Die linke Seite ist ein einzelner Parameter des abgeleiteten Typs, und rechts ist ein Codeblock ohne Rückgabewert (der void zurückgibt):
x -> { System.out.println(x); }
Statische Methodenreferenz:
String::valueOf
Nichtstatische Methodenreferenz:
Object::toString
Geerbte Funktionsreferenz:
x::toString
Konstruktorreferenz:
ArrayList::new
Sie können einige Funktionsreferenzformate als Abkürzung für andere Lambda-Formate erstellen.