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