Sobes.tech
Junior

Čo sú to lambda výrazy v Jave?

sobes.tech AI

Odpoveď od AI

Výraz lambda v Jave je anonymná (bez mena) funkcia, ktorá implementuje funkčné rozhranie.

Hlavné vlastnosti:

  • Nemajú meno.
  • Môžu mať parametre.
  • Telo môže pozostávať z jedného výrazu alebo bloku príkazov.
  • Typ návratovej hodnoty nie je uvedený (automaticky odvodený).
  • Sú potrebné pre funkcionálne programovanie a prácu s tokmi (Streams API).

Syntax:

// Bez parametrov
() -> { // telo }

// S jedným parametrom (typ môže byť vynechaný)
parameter -> výraz

// S viacerými parametrami (typ môže byť vynechaný, sú potrebné zátvorky)
(param1, param2) -> { // telo }

Príklad použitia:

// Funkčné rozhranie (vstavané)
import java.util.function.Consumer;

// Implementácia pomocou lambda
Consumer<String> tlačiar = s -> System.out.println(s);
`tlačiar.accept("Ahoj svet!");

// Použitie v metóde, ktorá akceptuje funkčné rozhranie
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 akceptuje Consumer

Výhody:

  • Kompaktnejší kód.
  • Zlepšená čitateľnosť (v jednoduchých prípadoch).
  • Možnosť využitia funkcionálneho programovania.
  • Zjednodušuje prácu s kolekciami a viacvláknovým spracovaním.

Obmedzenia:

  • Vnorené alebo dlhé lambdy môžu byť ťažko pochopiteľné.
  • Nemajú stav (nemôžu mať polia inštancie).