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.
Comparación de Código
✕ 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.
Por qué gana la forma moderna
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
Soporte JDK
De clases anónimas a lambdas y referencias a métodos
Disponible
Disponible desde JDK 8 (marzo de 2014).
Cómo funciona
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.
Documentación Relacionada
Prueba