Im Java 8- java.util.functionPaket 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.langnichtjava.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.
Runnablezu diesem Zeitpunkt veraltet ist, da ein Runnable auch von anderen Klassen als Thread( Executorzum Beispiel) verwendet wird.
Runnables nur .run()von Threads sein kann. Tatsächlich werden sie sehr häufig für genau den in der Frage beschriebenen Zweck verwendet
java.util.function Paket gefunden.