Language Principiante

De clases anónimas a lambdas y referencias a métodos

Sustituye las clases anónimas de un solo método por lambdas y referencias a métodos concisas.

✕ Anonymous class
button.addActionListener(new ActionListener() {
    @Override
    public void actionPerformed(ActionEvent event) {
        save(event);
    }
});
✓ Java 8+
button.addActionListener(this::save);
¿Ves un problema con este código? Cuéntanos.
⚡

Menos código repetitivo

Elimina la declaración de la clase y la ceremonia de sobrescritura.

👁

Mejor legibilidad

Mantiene la atención en la operación que se realiza.

🔒

Con seguridad de tipos

El compilador comprueba la firma de la interfaz funcional de destino.

Enfoque Antiguo
Clase anónima
Enfoque Moderno
Referencia a método
Desde JDK
8
Dificultad
Principiante
De clases anónimas a lambdas y referencias a métodos
Disponible

Disponible desde JDK 8 (marzo de 2014).

Las interfaces funcionales pueden implementarse con lambdas o referencias a métodos. Esto elimina la ceremonia de las clases anónimas a la vez que conserva el tipado estático y el mismo contrato de callback.