Ich lerne gerade über neue Java8-Funktionen. Und hier ist meine Frage:
Warum darf Callable<Void>
nicht als funktionale Schnittstelle für Lambda-Ausdrücke verwendet werden? (Compiler beklagt sich über Rückgabewert)
Und es ist immer noch völlig legal, Callable<Integer>
dort zu verwenden. Hier ist der Beispielcode:
Wie erklärt man dieses Verhalten?
Für eine Void
-Methode (die sich von einer void
-Methode unterscheidet) müssen Sie null
zurückgeben.
Void
ist nur ein Platzhalter, der angibt, dass Sie eigentlich keinen Rückgabewert haben (obwohl das Konstrukt - wie Callable hier - einen benötigt). Der Compiler behandelt sie nicht auf besondere Weise, Sie müssen also selbst eine "normale" Return-Anweisung eingeben.