Nuevas características de la interfaz funcional Java 8 incorporada
En una publicación de blog anterior, Lambda Expression, mencionamos la interfaz funcional proporcionada por Java 8. En este artículo, presentaremos las cuatro interfaces funcionales más básicas en Java 8.
Para referencias a métodos, estrictamente hablando, se debe definir una interfaz. No importa cómo operemos, en realidad solo hay cuatro interfaces que son posibles para operar.
Java 8 proporciona el paquete de interfaz funcional java.util.function.*, Bajo el cual hay muchas interfaces funcionales integradas en Java 8. Sin embargo, se divide básicamente en cuatro tipos básicos:
Interfaz funcional (función)
Tomando t como entrada y r como salida, también contiene el método predeterminado combinado con otras funciones.
@FunctionalInterfacePublic Interface Función <t, r> {r Apply (t t);} Código de muestra
public static void main (string [] args) {// ¡Aquí usamos referencia del método Java8, interfaz funcional funcional! Function <string, boolean> function = "hola java" :: endswith; System.out.println (function.apply ("java"));} Interfaz de consumo
Tome T como entrada sin devolver nada, lo que indica una operación en un solo parámetro.
@FunctionalInterfacePublic Interface Consumer <T> {void Acept (t t);} Código de muestra
clase testdemo {// Este método no tiene valor de retorno, pero hay parámetros de entrada public void divers (string str) {system.out.println (str); }} public class testFunctional {public static void main (string [] args) {testDemo demo = new testDemo (); // Interfaz de tipo de consumo, solo parámetros de entrada, sin parámetros de salida Consumer <String> Consumer = Demo :: Fun; consumidor.accept (""); }}
Proveedor
Sin parámetros de entrada, solo t devuelve la salida
@FunctionalInterfacePublic Interface Proveed <T> {t get ();} Código de muestra
Public Class TestFunctional {public static void main (string [] args) {// interfaz de tipo de proveedor, solo parámetros de salida, ¡sin parámetros de entrada! Proveedor <String> Suministro = "Java 8" :: TOUPPERCASE; System.out.println (proveedor.get ()); }} Interfaz de aserción (predicado)
Tomando t como entrada y devolución de un booleano como salida, la interfaz contiene una serie de métodos predeterminados para combinar predicado en otra lógica compleja (y, o, no).
@FunctionalInterfacePublic Interface Predication <T> {test boolean (t t);} Código de muestra
Public Class TestFunctional {public static void main (string [] args) {// afirmar interfaz de tipo. Hay parámetros de entrada, los parámetros de salida son predicados booleanos <String> predicate = "Android" :: EqualSignorEcase; System.out.println (predicate.test ("android")); }}Por lo tanto, en Java 8, ya que existen las cuatro interfaces funcionales anteriores, ¡generalmente es raro que los usuarios definan nuevas interfaces funcionales!
Gracias por leer, espero que pueda ayudarte. ¡Gracias por su apoyo para este sitio!