Heim >Java >javaLernprogramm >Funktionale Schnittstellen

Funktionale Schnittstellen

Patricia Arquette
Patricia ArquetteOriginal
2025-01-07 08:10:40463Durchsuche

Interfaces funcionais

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));

  • Ergebnis: 0,25.

Typinferenz

Durch Kontext abgeleiteter Parametertyp:
(n) -> 1,0/n; // Typ abgeleitet als double

Explizit deklarierter Typ (optional):
(Doppel-n) -> 1,0 / n;

Kompatibilitätsregeln

  • Typ und Anzahl der Parameter im Lambda-Ausdruck müssen mit der abstrakten Methode übereinstimmen.

(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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn