Was ist die Java 8-Funktionsschnittstelle für eine Methode, die nichts nimmt und nichts zurückgibt?
Dh, die äquivalent zu dem C # parameter Action
mit void
Rückgabetyp?
java
java-8
java-stream
Miguel Gamboa
quelle
quelle
Runnable
Die Schnittstellenspezifikation gibt an, dass derThread
Klasse ausführbarer Code bereitgestellt werden soll. Es erscheint mir nicht richtig, dort zu verwenden,Runnable
wo es nicht für die Ausführung durch einen Thread vorgesehen ist. scheint irreführend.Runnable
wird als definiert,FunctionalInterface
weil es die Spezifikation einer funktionalen Schnittstelle erfüllt und mithilfe der Lambda-Syntax erstellt werden kann. Warum nicht eine eigene Funktionsoberfläche erstellen? siehe Runnable , siehe FunctionalInterfaceRunnable
ist mit annotiert@FunctionalInterface
und (ii) wird sogar im Kontext eines Lambda-Ausdrucks in einem Thread ausgeführt: dem Thread, in dem das Lambda ausgeführt wird, der möglicherweise der aktuelle Thread ist ...Runnable
dies für diesen Zweck verwendet werden sollte, nicht nur zum Einfädeln von Kontexten.Mach einfach deine eigenen
und benutze es so
und die Ausgabe
quelle
@FunctionalInterface erlaubt nur Methode abstrakte Methode Daher können Sie diese Schnittstelle mit Lambda-Ausdruck wie unten instanziieren und auf die Schnittstellenelemente zugreifen
quelle