Middle
Čo sú to lambda výrazy v Jave?
sobes.tech AI
Odpoveď od AI
Výraz lambda v Jave je anonymná funkcia. Umožňuje považovať funkčnosť ako argument metódy alebo ako kód ako údaje.
Hlavné vlastnosti:
- Anonymita: Nemá meno.
- Funkčné rozhranie: Lambda výraz je vždy spojený s funkčným rozhraním (rozhraním s jednou abstraktnou metódou).
- Syntax:
(parametre) -> { telo }
Príklad použitia s funkčným rozhraním Consumer:
import java.util.function.Consumer;
// Funkčné rozhranie Consumer<T> má jednu abstraktnú metódu accept(T t)
Consumer<String> pozdrav = (meno) -> {
System.out.println("Ahoj, " + meno);
};
pozdrav.accept("Svet"); // Výstup: Ahoj, Svet
Príklad použitia s rozhraním Runnable:
// Rozhranie Runnable má jednu abstraktnú metódu run()
Runnable úloha = () -> {
System.out.println("Úloha sa vykonáva v samostatnom vlákne");
};
new Thread(úloha).start(); // Spustí úlohu v novom vlákne
Varianty syntaxe:
- Bez parametrov:
() -> { System.out.println("Ahoj"); } - Jeden parameter bez zátvoriek:
meno -> System.out.println("Ahoj, " + meno) - Viac parametrov so zátvorkami a typmi:
(int a, int b) -> { return a + b; } - Viac parametrov bez typov (tvar odhadu):
(a, b) -> a + b - Telo na jednu riadok bez
return:(a, b) -> a + b - Viacriadkové telo s zátvorkami a
return(ak je potrebné):(a, b) -> { int súčet = a + b; return súčet; }
Lambda výrazy robia kód kompaktnejším, čitateľnejším a umožňujú využívanie funkcionálneho programovania v Jave.