Sobes.tech
Middle

Ce sunt expresiile lambda în Java?

sobes.tech AI

Răspuns de la AI

Expresia lambda în Java este o funcție anonimă. Aceasta permite tratarea funcționalității ca argument al metodei sau ca cod ca date.

Caracteristici principale:

  • Anonimat: Nu are nume.
  • Interfață funcțională: Expresia lambda este întotdeauna asociată cu o interfață funcțională (interfață cu o singură metodă abstractă).
  • Sintaxă: (parametri) -> { corp }

Exemplu de utilizare cu interfața funcțională Consumer:

import java.util.function.Consumer;

// Interfața funcțională Consumer<T> are o metodă abstractă accept(T t)
Consumer<String> salut = (nume) -> {
    System.out.println("Salut, " + nume);
};

salut.accept("Lume"); // Afișare: Salut, Lume

Exemplu de utilizare cu interfața Runnable:

// Interfața Runnable are o metodă abstractă run()
Runnable sarcina = () -> {
    System.out.println("Sarcina se execută într-un thread separat");
};

new Thread(sarcina).start(); // Începe sarcina într-un thread nou

Variante sintactice:

  • Fără parametri: () -> { System.out.println("Salut"); }
  • Un parametru fără paranteze: nume -> System.out.println("Salut, " + nume)
  • Mai mulți parametri cu paranteze și tipuri: (int a, int b) -> { return a + b; }
  • Mai mulți parametri fără tipuri (inferență de tip): (a, b) -> a + b
  • Corp pe o singură linie fără return: (a, b) -> a + b
  • Corp multi-linie cu acolade și return (dacă este necesar): (a, b) -> { int suma = a + b; return suma; }

Expresiile lambda fac codul mai compact, mai ușor de citit și permit utilizarea programării funcționale în Java.