Sobes.tech
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.