如果在 lambda 函数中只有一个语句,我们可以省略为其定义完整的代码块:
new Thread(() -> System.out.println());
为什么抛出异常的语句不是这种情况呢?这会导致编译错误,指出'{' expected
:
new Thread(() -> throw new RuntimeException());
当然,将lambda体封装在代码块中也是可以的:
new Thread(() -> {
throw new RuntimeException();
});
return System.out.println()
这样的语句是有效的,而return throw new RuntimeException()
则无效。 - Neutrosider