Java8支持本地lambda变量吗?
考虑一个代码(不可编译):Java8支持本地lambda变量吗?,java,lambda,java-8,Java,Lambda,Java 8,考虑一个代码(不可编译): List List=Arrays.asList(“a”、“b”); list.stream().map(s-> 字符串变量=方法 变量+“调试” ); 私有字符串方法(字符串s){ 返回s; } 未编译行String variable=method 我可以在lambda表达式中定义一个局部变量,还是设计禁止使用它?是,但是多语句lambda需要将代码块用大括号括起来。您还需要在语句末尾正确使用分号。您还需要使用return关键字 list.stream().map(
List List=Arrays.asList(“a”、“b”);
list.stream().map(s->
字符串变量=方法
变量+“调试”
);
私有字符串方法(字符串s){
返回s;
}
未编译行String variable=method
我可以在lambda表达式中定义一个局部变量,还是设计禁止使用它?是,但是多语句lambda需要将代码块用大括号括起来。您还需要在语句末尾正确使用分号。您还需要使用
return
关键字
list.stream().map(s ->{
String variable = method(s);
return variable + "debug";
}
);
单语句lambda有一个隐含的
返回
,以避免键入,并使lambda更具可读性。从调试
判断,您不想peek()
?看看定义lambda体的过程。您会遇到什么错误?什么使你认为你不能有局部变量?
list.stream().map(s ->{
String variable = method(s);
return variable + "debug";
}
);