Junior
Co jsou to lambda výrazy v Java?
sobes.tech AI
Odpověď od AI
Výraz lambda v Javě je anonymní (bez jména) funkce, která implementuje funkční rozhraní.
Hlavní vlastnosti:
- Nem mají jméno.
- Mohou mít parametry.
- Tělo může sestávat z jednoho výrazu nebo bloku příkazů.
- Typ návratové hodnoty není uveden (je automaticky odvozen).
- Jsou nezbytné pro funkcionální programování a práci s proudy (Streams API).
Syntaxe:
// Bez parametrů
() -> { // tělo }
// S jedním parametrem (typ může být vynechán)
param -> výraz
// S více parametry (typ může být vynechán, jsou potřeba závorky)
(param1, param2) -> { // tělo }
Příklad použití:
// Funkční rozhraní (vestavěné)
import java.util.function.Consumer;
// Implementace pomocí lambda
Consumer<String> tiskárna = s -> System.out.println(s);
tiskárna.accept("Ahoj světe!");
// Použití v metodě, která přijímá funkční rozhraní
import java.util.Arrays;
import java.util.List;
List<Integer> čísla = Arrays.asList(1, 2, 3, 4, 5);
čísla.forEach(n -> System.out.println(n)); // forEach přijímá Consumer
Výhody:
- Kompaktnější kód.
- Zlepšená čitelnost (v jednoduchých případech).
- Možnost využít funkcionální programování.
- Zjednodušení práce s kolekcemi a vícenásobným vlákněním.
Omezení:
- Vnořené nebo dlouhé lambdy mohou být těžko pochopitelné.
- Nemají stav (nemohou mít pole instance).