Corsi on-line

Espressioni Lambda, la più importante novità di Java 8

Le espressioni Lambda sono senza dubbio la novità più interessante di Java 8; la loro implementazione non è stata particolarmente semplice, tanto che la versione definitiva del più recente aggiornamento di questo linguaggio è stata rilasciata con mesi di ritardo rispetto a quanto inizialmente previsto dalla road map di Oracle.

Java 8

Ma in cosa consistono le espressioni Lambda? Diciamo innanzitutto che grazie ad esse l’attenzione dello sviluppatore si sposta per la prima volta dai dati, e quindi per esempio dalle classi, ai “comportamenti”.

In precedenza, mancando uno strumento diretto per la gestione dei comportmamenti, l’utilizzo delle API (Application Programming Interface) richiedeva non di rado il ricorso a procedure macchinose come per esempio il riferimento continuo e ripetuto al codice client; un’espressione Lambda invece, definisce una funzione anonima, cioè in grado di mantenere il proprio stato disponendo di un corpo anche se non di un nome.

Per capire quali possano essere i vantaggi delle espressioni Lambda in fase di stesura del sorgente è per esempio possibile usarle in sostituzione delle classi anonime; si pensi per esempio alle classi anonime che implementano interfacce Runnable, cioè deputate a definire un metodo run() che conterrà il codice da elaborare in un thread di esecuzione separato. Ecco quindi un esempio di classe anonima con interfaccia Runnable prima di Java 8:

new Thread(new Runnable() {
    @Override
    public void run() {
        System.out.println("Blah! Blah! Blah!");
    }
}).start();

Ora, ecco una dimostrazione pratica di come il medesimo risultato possa essere ottenuto utilizzando le espressioni Lambda di Java 8 e digitando una quantità nettamente inferiore di codice:

new Thread( () -> System.out.println("Blah! Blah! Blah!") ).start()

Si noti come un’intera classe anonima sia stata sostituita da un semplice blocco () -> {}

Post correlati
I più letti del mese
Tematiche