Middle
Cosa sono le espressioni lambda in Java?
sobes.tech AI
Risposta dell'AI
L'espressione lambda in Java è una funzione anonima. Permette di considerare la funzionalità come un argomento di metodo o come codice come dati.
Caratteristiche principali:
- Anonimato: Non ha nome.
- Interfaccia funzionale: L'espressione lambda è sempre associata a un'interfaccia funzionale (interfaccia con un solo metodo astratto).
- Sintassi:
(parametri) -> { corpo }
Esempio di utilizzo con l'interfaccia funzionale Consumer:
import java.util.function.Consumer;
// L'interfaccia funzionale Consumer<T> ha un metodo astratto accept(T t)
Consumer<String> saluto = (nome) -> {
System.out.println("Ciao, " + nome);
};
saluto.accept("Mondo"); // Output: Ciao, Mondo
Esempio di utilizzo con l'interfaccia Runnable:
// L'interfaccia Runnable ha un metodo astratto run()
Runnable compito = () -> {
System.out.println("Il compito viene eseguito in un thread separato");
};
new Thread(compito).start(); // Avvia il compito in un nuovo thread
Varianti sintattiche:
- Senza parametri:
() -> { System.out.println("Ciao"); } - Un parametro senza parentesi:
nome -> System.out.println("Ciao, " + nome) - Più parametri con parentesi e tipi:
(int a, int b) -> { return a + b; } - Più parametri senza tipi (inferenza di tipo):
(a, b) -> a + b - Corpo di una sola riga senza
return:(a, b) -> a + b - Corpo multilinea con parentesi graffe e
return(se necessario):(a, b) -> { int somma = a + b; return somma; }
Le espressioni lambda rendono il codice più compatto, leggibile e consentono di utilizzare la programmazione funzionale in Java.