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