„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Warum können Methodenreferenzen mit Rückgabetypen die Verbraucherschnittstelle in Java implementieren?

Warum können Methodenreferenzen mit Rückgabetypen die Verbraucherschnittstelle in Java implementieren?

Gepostet am 2025-03-22
Durchsuche:473

Why Can Method References with Return Types Implement the Consumer Interface in Java?

Warum methodieren Referenzen mit Rückgabetypen mit der Verbraucherschnittstelle

In Java können Methodenreferenzen verwendet werden, um funktionale Schnittstellen zu erstellen. Die Verbraucherschnittstelle macht beispielsweise ein einziges Argument und führt eine Aktion aus. Überraschenderweise können Methodenreferenzen mit Rückgabetypen auch mit der Verbraucherschnittstelle übereinstimmen.

Die Entscheidung, dieses Verhalten zu ermöglichen, basiert auf der Idee, Methoden an funktionale Schnittstellen in ähnlicher Weise wie sie aufgerufen werden. Insbesondere kann jede Wertschöpfungsmethode an eine Verbraucherschnittstelle angepasst werden, auch wenn der Rückgabewert ignoriert wird.

In Bezug auf Lambda -Ausdrücke gibt es zwei Formen: (args) -> Ausdruck und (Argumente) -> {Aussagen*}. Die letztere Form kann void-kompatibel sein, wenn kein Codepfad versucht, einen Wert zurückzugeben. Die erstere Form ist wertvoll, wenn der Ausdruck einen Wert bewertet. Wenn der Ausdruck jedoch auch eine Aussage ist (z. B. ein Methodenaufruf oder Inkrement-/Dekrement-Operator), kann er void-kompatibel sein. Dies liegt daran, dass Inkrement-/Decrement -Operatoren selbst als Aussagen verwendet werden können. Ein weiterer void -kompatibler Ausdruck ist S -> Neue, was auch immer (s) als Ausdrücke der Klasseninstanzkreation auch als Aussagen verwendet werden können.

Interessanterweise ist (arg) -> methodreturningvoid (arg) das einzige Ausdrucksformular, das nicht wertkompatibel ist.

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3