Language Einsteiger

Von anonymen Klassen zu Lambdas und Methodenreferenzen

Anonyme Klassen mit einer einzigen Methode durch prägnante Lambdas und Methodenreferenzen ersetzen.

✕ Anonymous class
button.addActionListener(new ActionListener() {
    @Override
    public void actionPerformed(ActionEvent event) {
        save(event);
    }
});
✓ Java 8+
button.addActionListener(this::save);
Problem mit diesem Code entdeckt? Sag uns Bescheid.
⚡

Weniger Boilerplate

Die Klassendeklaration und das Überschreiben der Methode entfallen.

👁

Bessere Lesbarkeit

Lenkt die Aufmerksamkeit auf die ausgeführte Operation.

🔒

Weiterhin typsicher

Der Compiler prüft die Signatur des Zielfunktionsinterfaces.

Alter Ansatz
Anonyme Klasse
Moderner Ansatz
Methodenreferenz
Seit JDK
8
Schwierigkeitsgrad
Einsteiger
Von anonymen Klassen zu Lambdas und Methodenreferenzen
Verfügbar

Verfügbar seit JDK 8 (März 2014).

Funktionale Interfaces können mit Lambdas oder Methodenreferenzen implementiert werden. Dadurch entfällt der Verwaltungsaufwand anonymer Klassen, während die statische Typisierung und derselbe Callback-Vertrag erhalten bleiben.