Language Principiante

Dalle classi anonime alle lambda e ai riferimenti a metodo

Sostituisci le classi anonime con un solo metodo con lambda e riferimenti a metodo concisi.

✕ Anonymous class
button.addActionListener(new ActionListener() {
    @Override
    public void actionPerformed(ActionEvent event) {
        save(event);
    }
});
✓ Java 8+
button.addActionListener(this::save);
Vedi un problema con questo codice? Faccelo sapere.
⚡

Meno boilerplate

Elimina la dichiarazione della classe e la cerimonia dell'override.

👁

Migliore leggibilità

Mantiene l'attenzione sull'operazione eseguita.

🔒

Sempre type-safe

Il compilatore verifica la firma dell'interfaccia funzionale di destinazione.

Approccio Vecchio
Classe anonima
Approccio Moderno
Riferimento a metodo
Dal JDK
8
Difficoltà
Principiante
Dalle classi anonime alle lambda e ai riferimenti a metodo
Disponibile

Disponibile dal JDK 8 (marzo 2014).

Le interfacce funzionali possono essere implementate con lambda o riferimenti a metodo. Ciò elimina la verbosità delle classi anonime, preservando la tipizzazione statica e lo stesso contratto di callback.