En el último artículo de esta serie, discutimos qué son las expresiones lambda y cómo escribir expresiones lambda. En este artículo, discutiremos cómo ejecutar expresiones lambda. Como dije, al final del último artículo, podemos usar las nuevas características de Java 8 para ejecutar expresiones lambda, interfaces funcionales .
Entonces, ¿qué es la interfaz funcional?
La interfaz que contiene el resumen único 方法 (SAM) se llama funcional 接口。 Algunos de los funcionales 接口 que podemos conocer son:
Interfaz | Método |
---|---|
Operable | Ejecutar () |
Revocable | Llamar () |
Comparable | En comparación con () |
Oyente de acción | acción realizada() |
En la versión 1.8, Java introdujo una nota @FunctionalInterface
para especificar explícitamente la interfaz como una interfaz funcional. Pero el comentario es opcional. Sin embargo, se recomienda escribir comentarios. Ayuda a prevenir cualquier otro método abstracto. Si la interfaz anotada contiene múltiples métodos abstractos, obtendremos un error en tiempo de compilación, que le preguntará:
error: Unexpected @FunctionalInterface annotation@FunctionalInterface^ CustomInterface is not a functional interface multiple non-overriding abstract methods found in interface CustomInterface
Nota: La interfaz funcional puede tener múltiples métodos predeterminados y estáticos.
Ejemplo 1:
@FunctionalInterfaceinterface A {
void m1();
}
@FunctionalInterface
interface B extends A {
}
@FunctionalInterface
interface C extends A {
void m1();
}
@FunctionalInterface
interface D extends A {
void m2();
}
En el ejemplo anterior, la definición de la interfaz D no es válida porque contiene dos métodos: m1 () [extendido desde la interfaz A] y m2 ().
En la siguiente parte, presentaré cómo usar expresiones lambda con interfaces funcionales.
de: https://dev.to//csangharsha/java-8-functional-interface-2cm9