CallableVoid als funktionale Schnittstelle mit Lambdas

8

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:

%Vor%

Wie erklärt man dieses Verhalten?

    
ferrerverck 24.06.2014, 07:59
quelle

1 Antwort

20

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.

    
Thilo 24.06.2014, 08:01
quelle

Tags und Links