我有這樣的代碼:爲什麼lambda表達式的主體只能由throws語句組成?
public class Sample {
public static void useCallable(Callable<Integer> expression){}
public static void main(String[] args){
useCallable(()->{throw new IOException();});
}
}
其編譯並運行良好。
但是,不應該Callable<Integer>
不採取任何輸入和返回一個整數?
()->{throw new IOException();}
不返回任何內容,那麼爲什麼它是一個有效的Callable<Integer>
表達式?
[請參考提問之前的文檔](https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/Callable.html#call()) –
@JudeNiroshan該文檔是什麼說關於沒有返回聲明的lambda表達式? – shmosel