Lambda výrazy
-
Velmi malá část skutečného funkcionálního jazyka je obsažena v Javě 8.
-
Jde o tzv. lambda výrazy (Lambda expressions).
-
Umožňují syntakticky elegantní hutný zápis pomocí symbolu šipky, např.
x -> x+1
. -
V zásadě bylo i dříve možné realizovat pomocí rozhraní s jednou metodou, implementovaných obvykle anonymní vnitřní třídou.
Podpora v jazyce
-
Syntaktický konstrukt
->
, např. -
(Person p) → p.printInfo();
Funkcionální rozhraní
-
Podpora v knihovnách (Java Core API)
-
funkcionální rozhraní (functional interfaces) v balíku
java.util.functions
-
většinou jako generická (typově parametrizovaná) rozhraní, např.
- Predicate<T>
-
s jednou metodou
boolean test(T t)
- Consumer<T>
-
s jednou metodou
void accept(T t)
Dokumentace
-
Oracle Java Documentation: Lambda Expressions
Příklad
-
Předávání booleovských funkcí jako predikátů do metod.