Interfaz funcional java

Proveedor de Java

Java 8: Interfaces funcionalesMaddy-15 de agosto de 2021-4 minutos de lecturaSuscríbete a mi boletín y no te pierdas mis próximos artículosSuscripciónTabla de contenidosEn este artículo, vamos a cubrir los siguientes puntos:

Una interfaz funcional es una interfaz que contiene un único método abstracto (un método que no tiene cuerpo). La razón principal por la que necesitamos interfaces funcionales es que podemos utilizarlas en expresiones lambda y referencias a métodos. De esta manera, reducimos el código boilerplate.

No es necesario incluir la palabra clave abstract porque, por defecto, un método declarado dentro de una interfaz funcional es abstracto. Sólo se permite un método abstracto, pero acepta múltiples métodos por defecto y estáticos.

La razón principal es que sin una interfaz funcional, tendríamos que usar una clase anónima, lo cual no es tan malo, pero las interfaces funcionales hacen que el código sea más sencillo de leer. Por ejemplo, una clase anónima se crea así:

Lista de interfaces funcionales de Java

Aunque a partir de Java 8, las interfaces pueden tener métodos estáticos y por defecto. Por defecto, los métodos en las interfaces son sólo abstractos. Así que no es obligatorio mencionar la palabra clave abstracta antes del método.Anotación @FunctionalInterface

  Habilitar java en chrome

La anotación @FunctionalInterface se escribe encima de la declaración de la interfaz. Actúa efectivamente como una función, por lo tanto, puede ser pasada como un parámetro a un método o puede ser devuelta como un valor por un método. Es opcional, pero cuando se menciona el compilador de java se asegura de que la interfaz sólo tiene un método abstracto. Si tratamos de añadir más de un método abstracto, el compilador nos indica un mensaje de anotación @FunctionalInterface inesperado.Para implementar el método abstracto de una interfaz funcional, podemos utilizar la expresión lambda o podemos implementar la interfaz a nuestra clase y anular el método. En la sintaxis anterior estamos utilizando una expresión lambda.Ejemplo:

En la clase Main, observa que no hemos sobrescrito el método calculate. Hemos utilizado la expresión lambda para implementar el método calculate de la interfaz Sample. El tipo de destino de lambda debe ser una interfaz, por lo que estamos utilizandoSolución de la muestra = // expresión lambda

Interfaz funcional personalizada de Java

Aunque a partir de Java 8, las interfaces pueden tener métodos estáticos y por defecto. Por defecto, los métodos en las interfaces son sólo abstractos. Así que no es obligatorio mencionar la palabra clave abstracta antes del método.Anotación @FunctionalInterface

La anotación @FunctionalInterface se escribe encima de la declaración de la interfaz. Actúa efectivamente como una función, por lo tanto, puede ser pasada como un parámetro a un método o puede ser devuelta como un valor por un método. Es opcional, pero cuando se menciona el compilador de java se asegura de que la interfaz sólo tiene un método abstracto. Si tratamos de añadir más de un método abstracto, el compilador nos indica un mensaje de anotación @FunctionalInterface inesperado.Para implementar el método abstracto de una interfaz funcional, podemos utilizar la expresión lambda o podemos implementar la interfaz a nuestra clase y anular el método. En la sintaxis anterior estamos utilizando una expresión lambda.Ejemplo:

  Php switch default

En la clase Main, observa que no hemos sobrescrito el método calculate. Hemos utilizado la expresión lambda para implementar el método calculate de la interfaz Sample. El tipo de destino de lambda debe ser una interfaz, por lo que estamos utilizandoSolución de la muestra = // expresión lambda

Interfaz funcional Java sin argumentos void

En el contexto de java 8, la interfaz funcional es una interfaz que tiene exactamente un método abstracto llamado método funcional con el que coinciden los tipos de parámetro y retorno de la expresión lambda. La interfaz funcional proporciona tipos de destino para las expresiones lambda y las referencias a métodos.

  Entrevista a Javier Cantón, el padre de Wave Engine

El java.util.function contiene interfaces funcionales de propósito general utilizadas por el JDK y también disponibles para usuarios finales como nosotros. Aunque no son el conjunto completo de interfaces funcionales a las que se pueden aplicar las expresiones lambda, proporcionan lo suficiente para cubrir los requisitos comunes. Eres libre de crear tus propias interfaces funcionales cuando el conjunto existente no sea suficiente.

Las interfaces definidas en este paquete están anotadas con FunctionalInterface. Esta anotación no es el requisito para que el compilador de Java determine que la interfaz es una interfaz funcional, sino que ayuda al compilador a identificar la violación accidental de la intención del diseño. Básicamente diría que esta anotación será muy útil para nosotros al crear nuestras interfaces funcionales personalizadas.

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Más información
Privacidad