Sobes.tech
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).