Wenn wir Lambda-Ausdrücke verwenden, ist der Abgleich die häufigste Operation. Es gibt jedoch viele Methoden in der Benutzeroberfläche, und einige Freunde werden beim Abgleich verwirrt sein. Was wir klarstellen können, ist, dass Lambda Schnittstellen abgleichen kann, daher werden die spezifischen Abgleichsanweisungen im Folgenden zusammen mit relevantem Beispielcode erläutert.
1. Beschreibung
(1) Jedes Lambda kann über eine bestimmte Schnittstelle einem bestimmten Typ entsprechen. Eine sogenannte funktionale Schnittstelle darf nur eine einzige abstrakte Methodendeklaration haben. Jeder entsprechende Lambda-Ausdruck muss mit der Deklaration der abstrakten Methode übereinstimmen. Da Standardmethoden nicht abstrakt sind, können Sie Ihrer funktionalen Schnittstelle jederzeit Standardmethoden hinzufügen.
(2) Jede Schnittstelle, die nur eine abstrakte Methode enthält, kann für Lambda-Ausdrücke verwendet werden. Damit die definierte Schnittstelle die Anforderungen erfüllt, sollte die Schnittstelle mit @FunctionalInterface gekennzeichnet sein. Wenn eine zweite abstrakte Methode in der Schnittstelle definiert ist, wird der Compiler diese Annotation bemerken und eine Ausnahme auslösen.
2. Beispiel
@FunctionalInterface Schnittstellenkonverter<F, T> { T konvertieren(F von); } Converter<String, Integer> converter = (from) -> Integer.valueOf(from); Integer konvertiert = konverter.convert("123"); System.out.println(konvertiert); // 123
Beachten Sie, dass das Programm auch dann korrekt ist, wenn die Annotation @FunctionalInterface nicht geschrieben wird.
Das Obige ist die Methode zum Abgleichen von Lambda-Ausdrücken in Java-Schnittstellen. Ich glaube, dass jeder in diesem Artikel ein neues Verständnis für die Verwendung von Lambda-Ausdrücken hat. Bitte üben Sie es so bald wie möglich.