我有这样的代码:为什么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