Heim >Java >javaLernprogramm >Funktionale Schnittstellen
Funktionale Schnittstellendefinition
Enthält nur eine abstrakte Methode.
Kann Standard- und/oder statische Methoden haben.
Abstrakte Methode gibt keine Implementierung an.
MyValue-Schnittstelle {
double getValue();
}
Zur Erinnerung: In funktionalen Schnittstellen wird der abstrakte Modifikator nicht explizit benötigt, da Java davon ausgeht, dass jede Methode, die keine Implementierung in einer Schnittstelle hat, automatisch abstrakt ist.
Ein Lambda einer funktionalen Schnittstelle zuweisen
MyValue myVal = () -> 98,6;
Der Rückgabetyp und die Parameter des Lambda müssen mit der abstrakten Methode kompatibel sein.
Abstrakter Methodenaufruf:
System.out.println("Ein konstanter Wert: " myVal.getValue());
Ergebnis: 98,6.
Funktionale Schnittstellen mit Parametern
MyParamValue-Schnittstelle {
double getValue(double v);
}
Lambda mit Berechnung des Kehrwerts:
MyParamValue myPval = (n) -> 1,0 / n;
System.out.println("Kehrwert von 4 ist " myPval.getValue(4.0));
Typinferenz
Durch Kontext abgeleiteter Parametertyp:
(n) -> 1,0/n; // Typ abgeleitet als double
Explizit deklarierter Typ (optional):
(Doppel-n) -> 1,0 / n;
Kompatibilitätsregeln
(int x, int y) -> x y;
Fazit
Funktionale Schnittstellen ermöglichen die Verwendung von Lambdas.
Lambda-Ausdrücke bieten eine prägnante Implementierung für die abstrakte Methode.
Zieltypkontexte und Typkompatibilität sind für die Verwendung von entscheidender Bedeutung.
Das obige ist der detaillierte Inhalt vonFunktionale Schnittstellen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!