Junior
Cosa sono le espressioni lambda in Java?
sobes.tech AI
Risposta dell'AI
L'espressione lambda in Java è una funzione anonima (senza nome) che implementa un'interfaccia funzionale.
Caratteristiche principali:
- Non hanno nome.
- Possono avere parametri.
- Il corpo può consistere in un'unica espressione o in un blocco di istruzioni.
- Il tipo di ritorno non viene specificato (viene dedotto automaticamente).
- Sono necessarie per la programmazione funzionale e il lavoro con gli stream (Streams API).
Sintassi:
// Senza parametri
() -> { // corpo }
// Con un parametro (il tipo può essere omesso)
param -> espressione
// Con più parametri (il tipo può essere omesso, sono necessarie parentesi)
(param1, param2) -> { // corpo }
Esempio di utilizzo:
// Interfaccia funzionale (integrata)
import java.util.function.Consumer;
// Implementazione con lambda
Consumer<String> stampante = s -> System.out.println(s);
stampante.accept("Ciao mondo!");
// Uso in un metodo che accetta un'interfaccia funzionale
import java.util.Arrays;
import java.util.List;
List<Integer> numeri = Arrays.asList(1, 2, 3, 4, 5);
numeri.forEach(n -> System.out.println(n)); // forEach accetta un Consumer
Vantaggi:
- Codice più conciso.
- Migliore leggibilità (nei casi semplici).
- Possibilità di usare la programmazione funzionale.
- Semplificazione del lavoro con le collezioni e il multithreading.
Limitazioni:
- Lambda annidate o lunghe possono essere difficili da capire.
- Non hanno stato (non possono avere campi di istanza).