Eine Schnittstelle mit nur einer abstrakten Methode, die als Zuweisungsziel für die Übergabe von Lambda-Ausdrücken und Methodenreferenzen verwendet werden kann.
** ・ Sie können nur eine abstrakte Methode verwenden -Abstraktionsmethoden, die öffentliche Methoden der Object-Klasse sind, sind nicht enthalten -Sie können mehrere Standardmethoden und statische Methoden haben **
Die Definition der Funktionsschnittstelle ist wie folgt geschrieben.
main.java
@FunctionalInterface
public interface Sample {
public abstract void Hello(String name);
}
Durch Annotieren von ** @ FunctionalInterface ** können Sie klar angeben, dass es sich um eine funktionale Schnittstelle handelt. Dies führt zu einem Kompilierungsfehler, wenn die Schnittstelle die Bedingungen für eine funktionale Schnittstelle nicht erfüllt.
Das Paket java.util.function bietet verschiedene Arten von Funktionsschnittstellen. Es kann gemäß dem Muster des empfangenen Arguments und dem zurückgegebenen Ergebnis grob in vier Typen unterteilt werden. Die grundlegende Funktionsschnittstelle ist wie folgt.
Art | Abstrakte Methode | Was du tun kannst |
---|---|---|
Supplier |
T get() | Gibt einen Rückgabewert vom Typ T ohne Argumente zurück |
Consumer |
void accept(T t) | Gibt die Verarbeitung zurück (es wird kein Wert zurückgegeben). |
Function<T, R> | R apply(T t) | Nimmt T als Argument und gibt R als Ergebnis zurück |
Predicate |
boolean test(T t) | Nimmt ein Argument vom Typ T und gibt als Ergebnis den Wert von boolean zurück |
Es gibt andere Typen, z. B. eine Schnittstelle, wenn zwei Argumente vorhanden sind. Verwenden Sie sie daher entsprechend dem Zweck ordnungsgemäß.
Recommended Posts