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ță).