Novos recursos do Java 8 interface funcional embutida
Em uma postagem anterior, a Lambda Expression, mencionamos a interface funcional fornecida pelo Java 8. Neste artigo, apresentaremos as quatro interfaces funcionais mais básicas no Java 8.
Para referências a métodos, rigorosamente falando, uma interface precisa ser definida. Não importa como operamos, existem apenas quatro interfaces que são possíveis de operar.
Java 8 fornece o pacote de interface funcional java.util.função.
Interface funcional (função)
Tomando t como entrada e r como saída, ele também contém o método padrão combinado com outras funções.
@FunctionAlInterfacePublic Interface Função <t, r> {r Aplicar (t t);} Código de amostra
public static void main (string [] args) {// aqui usamos referência do método java8, interface funcional funcional! Function <string, boolean> function = "hello java" :: endswith; System.out.println (function.apply ("java"));} Interface do consumidor
Tome T como entrada sem retornar nada, indicando uma operação em um único parâmetro.
@FunctionInterfacePublic Interface Consumer <t> {void aceit (t t);} Código de amostra
classe TestDemo {// Este método não tem valor de retorno, mas existem parâmetros de entrada public void Fun (String str) {System.out.println (str); }} classe pública testFuncional {public static void main (string [] args) {testdemo demo = new testDemo (); // Interface do tipo de consumidor, apenas parâmetros de entrada, sem parâmetros de saída consumidor <string> consumer = Demo :: Fun; consumer.accept (""); }}
Fornecedor
Sem parâmetros de entrada, apenas T retorna a saída
@FunctionAlInterfacePublic Interface Fornecedor <T> {t get ();} Código de amostra
classe pública testFunctional {public static void main (string [] args) {// interface do tipo de fornecedor, apenas parâmetros de saída, sem parâmetros de entrada! Fornecedor <tring> fornecedor = "java 8" :: touppercase; System.out.println (fornecedor.get ()); }} Interface assercional (predicado)
Tomando t como entrada e retornando um booleano como saída, a interface contém vários métodos padrão para combinar predicado em outra lógica complexa (e, ou, não).
@FunctionAlInterfacePublic Interface Predicate <T> {teste booleano (t t);} Código de amostra
classe pública TestFunctional {public static void main (string [] args) {// Assert Type Interface. Existem parâmetros de entrada, os parâmetros de saída são predicados booleanos <string> predicados = "Android" :: Equalsignorecase; System.out.println (predicado.test ("Android")); }}Portanto, no Java 8, como existem as quatro interfaces funcionais acima, geralmente é raro os usuários definirem novas interfaces funcionais!
Obrigado pela leitura, espero que isso possa ajudá -lo. Obrigado pelo seu apoio a este site!