Java8支持本地lambda变量吗?
考虑一个代码(不可编译):
List<String> list = Arrays.asList("a", "b");
list.stream().map(s ->
String variable = method(s)
variable + "debug"
);
private String method(String s) {
return s;
}
第String variable = method(s)
行未编译
我可以在lambda表达式中定义局部变量,还是设计禁止
# 1 楼答案
是的,但是多语句lambda需要将代码块用大括号括起来。您还需要在语句末尾正确使用分号。您还需要使用
return
关键字单语句lambda有一个隐含的
return
以避免键入,并使lambda更具可读性