Artículo

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 […]

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 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

Compartir artículo