Interfaces Funcionales en JAVA 8
Una interfaz funcional o functional interface es una interfaz que contiene solo un método abstracto. Solo pueden tener una funcionalidad para exhibir. Desde Java 8 en adelante, las expresiones lambda se pueden usar para representar la instancia de una interfaz funcional. Una interfaz funcional puede tener cualquier número de métodos predeterminados. Anotación @FunctionalInterface Se recomienda […]

Una interfaz funcional o functional interface es una interfaz que contiene solo un método abstracto. Solo pueden tener una funcionalidad para exhibir. Desde Java 8 en adelante, las expresiones lambda se pueden usar para representar la instancia de una interfaz funcional. Una interfaz funcional puede tener cualquier número de métodos predeterminados.
Anotación @FunctionalInterface
Se recomienda que todas las interfaces funcionales tengan una anotación informativa @FunctionalInterface. Esto comunica claramente el propósito de la interfaz y también permite que un compilador genere un error si la interfaz anotada no cumple las condiciones.
Cualquier interfaz con un SAM (Single Abstract Method) es una interfaz funcional y su implementación puede tratarse como expresiones lambda.
@FunctionalInterface
interface Ejecutor {
void ejecutar();
}
Static y Default
Cómo ya hemos descrito anteriormente, las interfaces funcionales solo pueden tener un método abstractor, sin embargo, pueden incluir métodos estáticos (static) o por defecto (default).
Static
Los métodos estáticos (static) son métodos que contienen implementación pero que dependen de la interfaz y no del objeto creado, por ello es aceptado en las interfaces funcionales (functional interfaces)
@FunctionalInterface
interface Ejecutor {
void ejecutar();
static void metodoEstatico(){}
}
Default
Los métodos por defecto (default) son métodos que contienen implementación pero que puede ser sobreescritos, por ello es aceptado en las interfaces funcionales (functional interfaces).
@FunctionalInterface
interface Ejecutor {
void ejecutar();
default void metodoPorDefecto(){}
}
¿Quieres acelerar tu carrera como desarrollador Java?
Reserva una Sesión de Estrategia Técnica gratuita y descubre cómo pasar de Junior a Senior en menos tiempo del que imaginas.
- Diagnóstico personalizado de tu nivel técnico
- Plan de acción para conseguir tu próximo ascenso
- Mentoría 1-a-1 enfocada en resultados
⚡ Plazas disponibles limitadas