¿Ya conoces las interfaces funcionales en Java? 👇
Es una interfaz que tiene exactamente un método abstracto, y aunque parezca algo menor, cambió mucho la forma en que escribimos Java.
Antes de Java 8, pasar una acción como parámetro implicaba crear clases anónimas larguísimas.
Con las interfaces funcionales, Java empezó a tratar el código como datos, ahora puedes pasar acciones (no solo objetos) a tus métodos.
El rol de la anotación @ FunctionalInterface no es ejecutar nada, sino garantizar que la interfaz cumpla la regla de tener un único método abstracto.
Si agregas más de uno, el compilador marcará error.
Es una forma de documentar intención y prevenir errores futuros.
Veamos un ejemplo antes y después de Java 8 👀