Sobes.tech
Junior

Ce sunt expresiile lambda în Java?

sobes.tech AI

Răspuns de la AI

Expresia lambda în Java este o funcție anonimă (fără nume) care implementează o interfață funcțională.

Caracteristici principale:

  • Nu au nume.
  • Pot avea parametri.
  • Corpul poate consta dintr-o singură expresie sau dintr-un bloc de instrucțiuni.
  • Tipul valorii de returnare nu este specificat (este dedus automat).
  • Sunt necesare pentru programarea funcțională și lucrul cu fluxurile (Streams API).

Sintaxă:

// Fără parametri
() -> { // corp }

// Cu un parametru (tipul poate fi omis)
param -> expresie

// Cu mai mulți parametri (tipul poate fi omis, sunt necesare paranteze)
(param1, param2) -> { // corp }

Exemplu de utilizare:

// Interfață funcțională (încorporată)
import java.util.function.Consumer;

// Implementare cu lambda
Consumer<String> printer = s -> System.out.println(s);
printer.accept("Salut lume!");

// Utilizare într-o metodă care acceptă o interfață funcțională
import java.util.Arrays;
import java.util.List;

List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
numbers.forEach(n -> System.out.println(n)); // forEach acceptă Consumer

Avantaje:

  • Cod mai concis.
  • O lizibilitate îmbunătățită (în cazuri simple).
  • Posibilitatea de a folosi programarea funcțională.
  • Simplifică lucrul cu colecțiile și multithreading-ul.

Limitări:

  • Lambdas încastrate sau lungi pot fi dificil de înțeles.
  • Nu au stare (nu pot avea câmpuri de instanță).