Sobes.tech
Junior

Cosa sono le espressioni lambda in Java?

sobes.tech AI

Risposta dell'AI

L'espressione lambda in Java è un modo conciso per rappresentare funzioni anonime (funzioni senza nome). Viene utilizzata per creare istanze di interfacce funzionali.

Componenti principali:

  • Lista dei parametri: Le parentesi () contengono la lista dei parametri. Se non ci sono parametri, si usano parentesi vuote.
  • Freccia ->: Separa la lista dei parametri dal corpo della lambda.
  • Corpo: Può essere un'espressione singola o un blocco di codice tra parentesi graffe {}.

Esempio senza parametri:

// Interfaccia funzionale
@FunctionalInterface
interface Greeting {
    void sayHello();
}

// Uso della lambda
Greeting greeting = () -> System.out.println("Hello, World!");

Esempio con parametri:

// Interfaccia funzionale
@FunctionalInterface
interface MathOperation {
    int operate(int a, int b);
}

// Uso della lambda
MathOperation addition = (a, b) -> a + b;
MathOperation subtraction = (a, b) -> {
    return a - b;
};

Vantaggi:

  • Concisione: Riduce la quantità di codice boilerplate.
  • Comodità: Utilizzo insieme all'API Stream per l'elaborazione di collezioni.
  • Programmazione funzionale: Supporta elementi di programmazione funzionale in Java.

Limitazioni:

  • Può essere usata solo con interfacce funzionali (interfacce con un solo metodo astratto).
  • Non può avere stato (cioè, non può modificare variabili esterne al suo contesto, se queste variabili non sono dichiarate esplicitamente come final o effective final).

Le espressioni lambda sono state introdotte in Java 8.