如果lambda函数中有一个语句,我们可以省略为它定义完整的代码块:
new Thread(() -> System.out.println());
Run Code Online (Sandbox Code Playgroud)
为什么抛出异常的语句不是这种情况?这会产生一个编译错误,说明'{' expected:
new Thread(() -> throw new RuntimeException());
Run Code Online (Sandbox Code Playgroud)
当然,将lambda主体封装在代码块中可以:
new Thread(() -> {
throw new RuntimeException();
});
Run Code Online (Sandbox Code Playgroud)