Sobes.tech
Middle

Co jsou to lambda výrazy v Javě?

sobes.tech AI

Odpověď od AI

Výraz lambda v jazyce Java je anonymní funkce. Umožňuje považovat funkčnost za argument metody nebo jako kód jako data.

Hlavní vlastnosti:

  • Anonymita: Nemá jméno.
  • Funkční rozhraní: Lambda výraz je vždy spojen s funkčním rozhraním (rozhraní s jednou abstraktní metodou).
  • Syntaxe: (parametry) -> { tělo }

Příklad použití s funkčním rozhraním Consumer:

import java.util.function.Consumer;

// Funkční rozhraní Consumer<T> má jednu abstraktní metodu accept(T t)
Consumer<String> pozdrav = (jmeno) -> {
    System.out.println("Ahoj, " + jmeno);
};

pozdrav.accept("Svět"); // Výstup: Ahoj, Svět

Příklad použití s rozhraním Runnable:

// Rozhraní Runnable má jednu abstraktní metodu run()
Runnable úloha = () -> {
    System.out.println("Úloha se provádí v samostatném vlákně");
};

new Thread(úloha).start(); // Spustí úlohu v novém vlákně

Variace syntaxe:

  • Bez parametrů: () -> { System.out.println("Ahoj"); }
  • Jeden parametr bez závorek: jmeno -> System.out.println("Ahoj, " + jmeno)
  • Více parametrů se závorkami a typy: (int a, int b) -> { return a + b; }
  • Více parametrů bez typů (tvar odhadu): (a, b) -> a + b
  • Jednořádkové tělo bez return: (a, b) -> a + b
  • Víceřádkové tělo s složenými závorkami a return (pokud je potřeba): (a, b) -> { int soucet = a + b; return soucet; }

Lambda výrazy činí kód kompaktnějším, čitelnějším a umožňují využití funkcionálního programování v jazyce Java.