Junior
Čo sú to lambda výrazy v Jave?
sobes.tech AI
Odpoveď od AI
Výraz lambda v Jave je stručný spôsob, ako reprezentovať anonymné funkcie (funkcie bez mena). Používa sa na vytváranie inštancií funkčných rozhraní.
Hlavné komponenty:
- Zoznam parametrov: Zaokrúhľované zátvorky
()obsahujú zoznam parametrov. Ak žiadne parametre nie sú, používajú sa prázdne zátvorky. - Šípka
->: Oddelí zoznam parametrov od tela lambda výrazu. - Telo: Môže byť jediným výrazom alebo blokom kódu v zátvorkách
{}.
Príklad bez parametrov:
// Funkčné rozhranie
@FunctionalInterface
interface Greeting {
void sayHello();
}
// Použitie lambda výrazu
Greeting greeting = () -> System.out.println("Hello, World!");
Príklad s parametrami:
// Funkčné rozhranie
@FunctionalInterface
interface MathOperation {
int operate(int a, int b);
}
// Použitie lambda výrazu
MathOperation addition = (a, b) -> a + b;
MathOperation subtraction = (a, b) -> {
return a - b;
};
Výhody:
- Stručnosť: Znižuje objem boilerplate kódu.
- Pohodlie: Používa sa spolu s API Stream na spracovanie kolekcií.
- Funkcionálne programovanie: Podporuje prvky funkcionálneho programovania v Jave.
Obmedzenia:
- Môžu byť použité iba s funkčnými rozhraniami (rozhraniami s jednou abstraktnou metódou).
- Nemôžu mať stav (t.j., nemôžu meniť premenné mimo ich kontext, ak tieto premenné nie sú explicitne deklarované ako final alebo efektívne final).
Výrazy lambda boli zavedené v Jave 8.