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.
Confronto Codice
✕ 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.
Perché vince l'approccio moderno
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
Supporto JDK
Dalle classi anonime alle lambda e ai riferimenti a metodo
Disponibile
Disponibile dal JDK 8 (marzo 2014).
Come funziona
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.
Documentazione Correlata
Prova