Language Początkujący

Od klas anonimowych do lambd i referencji do metod

Zastąp klasy anonimowe z jedną metodą zwięzłymi lambdami i referencjami do metod.

✕ Anonymous class
button.addActionListener(new ActionListener() {
    @Override
    public void actionPerformed(ActionEvent event) {
        save(event);
    }
});
✓ Java 8+
button.addActionListener(this::save);
Widzisz problem z tym kodem? Daj nam znać.
⚡

Mniej kodu szablonowego

Eliminuje deklarację klasy i formalności związane z przesłanianiem metody.

👁

Lepsza czytelność

Skupia uwagę na wykonywanej operacji.

🔒

Nadal bezpieczne typowo

Kompilator sprawdza sygnaturę docelowego interfejsu funkcyjnego.

Stare podejście
Klasa anonimowa
Nowoczesne podejście
Referencja do metody
Od JDK
8
Poziom trudności
Początkujący
Od klas anonimowych do lambd i referencji do metod
Dostępne

Dostępne od JDK 8 (marzec 2014).

Interfejsy funkcyjne można implementować za pomocą lambd lub referencji do metod. Eliminuje to formalności związane z klasą anonimową, zachowując statyczne typowanie i ten sam kontrakt wywołania zwrotnego.