Im Java 8- java.util.function
Paket haben wir:
- Funktion : Nimmt ein Argument und erzeugt ein Ergebnis.
- Verbraucher : Nimmt ein Argument, produziert nichts.
- Lieferant : Nimmt kein Argument, produziert ein Ergebnis.
- ... : Andere Fälle, die Primitive, 2 Argumente usw. behandeln ...
Aber ich muss den Fall " nimmt kein Argument, produziert nichts " behandeln.
Es gibt nichts dafür in java.util.functionnal
.
Die Frage ist also:
Wie heißt eine Funktion, die kein Argument annimmt und nichts zurückgibt ?
In Java 8 wäre seine Definition:
@FunctionalInterface
public interface InsertANameHere {
void execute();
}
Executor ist bereits vorhanden und hat einen anderen Zweck: " Ein Objekt, das übermittelte ausführbare Tasks ausführt ". Die Signatur stimmt nicht überein ( execute(Runnable):void
) und ist nicht einmal eine funktionierende Schnittstelle .
Runnable existiert, ist aber stark mit dem Threading-Kontext verbunden:
- Das Paket ist
java.lang
nichtjava.util.function
. - Im Javadoc heißt es: " Die Runnable-Schnittstelle sollte von jeder Klasse implementiert werden, deren Instanzen von einem Thread ausgeführt werden sollen ."
- Der Name "Runnable" deutet auf einen laufenden Code innerhalb eines Threads hin.
Runnable
zu diesem Zeitpunkt veraltet ist, da ein Runnable auch von anderen Klassen als Thread
( Executor
zum Beispiel) verwendet wird.
Runnable
s nur .run()
von Thread
s sein kann. Tatsächlich werden sie sehr häufig für genau den in der Frage beschriebenen Zweck verwendet
java.util.function
Paket gefunden.