Новые функции встроенного функционального интерфейса Java 8
В предыдущем сообщении в блоге, Lambda Expression, мы упомянули функциональный интерфейс, предоставленный Java 8. В этой статье мы представим четыре самых основных функциональных интерфейса в Java 8.
Для ссылок на методы, строго говоря, необходимо определить интерфейс. Независимо от того, как мы работаем, на самом деле есть только четыре интерфейса, которые можно работать.
Java 8 предоставляет функциональный пакет интерфейса java.util.function.*, При котором есть много функциональных интерфейсов, встроенных в Java 8. Однако он в основном разделен на четыре основных типа:
Функциональный интерфейс (функция)
Принимая t в качестве входного и r в качестве выходного сигнала, он также содержит метод по умолчанию в сочетании с другими функциями.
@FunctionalInterfacepubbublic function <t, r> {r Apply (t t);} Пример кода
public static void main (string [] args) {// здесь мы используем ссылку на метод Java8, функциональный функциональный интерфейс! Function <string, boolean> function = "hello java" :: endswith; System.out.println (function.apply ("java"));} Потребительский интерфейс
Возьмите T в качестве входного ввода, не возвращая ничего, указывая на операцию на одном параметре.
@FunctionalInterfacePublic Interface Consumer <t> {void Accept (t t);} Пример кода
Class TestDemo {// Этот метод не имеет возвращаемого значения, но есть входные параметры public void Fun (String Str) {System.out.println (str); }} public class testfunctional {public static void main (string [] args) {testDemo demo = new TestDemo (); // Интерфейс типа потребителя, только входные параметры, нет выходных параметров потребитель <string> consumer = demo :: fun; Consumer.accept ("" "); }}
Поставщик
Нет входных параметров, только t возвращает выход
@FunctionalInterfacepubbublic interface поставщик <t> {t get ();} Пример кода
открытый класс TestFunctional {public static void main (string [] args) {// интерфейс типа поставщика, только выходные параметры, без входных параметров! Поставщик <string> поставщик = "java 8" :: touppercase; System.out.println (поставщик.get ()); }} Утверждающий интерфейс (предикат)
Принимая t в качестве входного и возврата логического выхода, интерфейс содержит ряд методов по умолчанию для объединения предиката в другую сложную логику (и, или, не).
@FunctionalInterfacepubbublic Predicate <t> {boolean test (t t);} Пример кода
открытый класс TestFunctional {public static void main (string [] args) {// assert type interface. Существуют входные параметры, выходными параметрами являются логический предикат System.out.println (Predicat.test ("Android")); }}Следовательно, в Java 8, поскольку существует вышеупомянутые четыре функциональных интерфейса, пользователи обычно редко определяют новые функциональные интерфейсы!
Спасибо за чтение, я надеюсь, что это поможет вам. Спасибо за поддержку этого сайта!