Ein Lambda-Ausdruck repräsentiert einen Block Java-Code. Wie eine Java-Methode enthält er Programmcode, aber da es keinen Methodennamen gibt, ist auch der Name anonyme Funktion im Gebrauch, sprachlich äquivalent zu anonymen inneren Klassen, die ja auch keinen Namen haben. Auch optisch sind sich ein Lambda-Ausdruck und eine Methodendeklaration ähnlich; was wegfällt sind Modifizierer, der Rückgabetyp, der Methodenname und throws-Klausen.
Methodendeklaration |
Lambda-Ausdruck |
public int compare ( String s1, String s2 )
{ return s1.trim().compareTo( s2.trim() ); } |
( String s1, String s2 ) -> { return s1.trim().compareTo( s2.trim() ); } |
Methodendeklaration mit dem Lambda-Ausdruck im Vergleich
Alle Lambda-Ausdrücke lassen sich in einer Syntax formulieren, die folgende allgemeine Form hat:
‚(‚ Parameter ‚)‘ ‚->‘ ‚{‚ Anweisungen; ‚}‘
Es gibt syntaktische Abkürzungen, wie wir später sehen werden, doch vorerst bleiben wir bei dieser Schreibweise.