Neue Funktionen der integrierten funktionalen Schnittstelle von Java 8
In einem früheren Blog -Beitrag, Lambda Expression, haben wir die von Java 8 bereitgestellte funktionale Schnittstelle erwähnt. In diesem Artikel werden wir die vier grundlegendsten funktionalen Schnittstellen in Java 8 vorstellen.
Für Verweise auf Methoden muss streng genommen eine Schnittstelle definiert werden. Unabhängig davon, wie wir arbeiten, gibt es tatsächlich nur vier Schnittstellen, die bedienen können.
Java 8 liefert das funktionale Schnittstellenpaket java.util.function.
Funktionsschnittstelle (Funktion)
Wenn Sie T als Eingabe und R als Ausgabe nutzen, enthält es auch die Standardmethode in Kombination mit anderen Funktionen.
@FunctionalInterfacepublic -Schnittstellenfunktion <t, r> {r anwenden (t t);} Beispielcode
public static void main (String [] args) {// Hier verwenden wir Java8 -Methodenreferenz, funktionale funktionale Schnittstelle! Funktion <String, boolean> function = "Hallo Java" :: Endswith; System.out.println (function.apply ("java"));} Verbraucherschnittstelle
Nehmen Sie T als Eingabe, ohne etwas zurückzugeben, und geben Sie einen Vorgang auf einem einzelnen Parameter an.
@FunctionalInterfacepublic Interface Consumer <T> {void Accept (t t);} Beispielcode
Klasse testDemo {// Diese Methode hat keinen Rückgabewert, aber es gibt Eingabeparameter public void Fun (String str) {System.out.println (str); }} public class testfunctional {public static void main (String [] args) {testDemo Demo = new TestDemo (); // Verbrauchertypschnittstelle, nur Eingabeparameter, keine Ausgangsparameter Verbraucher <string> Consumer = Demo :: Fun; Consumer.accept (""); }}
Anbieter
Keine Eingabeparameter, nur t gibt die Ausgabe zurück
@FunctionalInterfacepublic Interface Lieferant <T> {t get ();} Beispielcode
public class testfunctional {public static void main (String [] args) {// Lieferantentypschnittstelle, nur Ausgabeparameter, keine Eingabeparameter! Lieferant <string> Lieferant = "Java 8" :: touppercase; System.out.println (Lieferant.get ()); }} Assertional Interface (Prädikat)
Die Schnittstelle nimmt als Eingabe und zurückgegeben und zurückgegeben und enthält eine Reihe von Standardmethoden, um Prädikat in andere komplexe Logik (und, oder nicht) zu kombinieren.
@FunctionalInterfacepublic Interface Prädikat <T> {boolescher Test (t t);} Beispielcode
public class testfunctional {public static void main (String [] args) {// Assert Type -Schnittstelle. Es gibt Eingabeparameter, die Ausgangsparameter sind boolesche Prädikat <string> predicate = "android" :: EqualSignoreCase; System.out.println (Predicate.test ("Android")); }}Daher ist es in Java 8, da es die oben genannten vier funktionalen Schnittstellen gibt, im Allgemeinen selten, dass Benutzer neue funktionale Schnittstellen definieren!
Danke fürs Lesen, ich hoffe, es kann Ihnen helfen. Vielen Dank für Ihre Unterstützung für diese Seite!