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

Příklad

  • Předávání booleovských funkcí jako predikátů do metod.