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