Java Lambda的使用范围是什么
作者:RainLight
时间:2023-04-24
浏览:3
1、访问局部变量可以访问lambda表达式外部的final局部变量:finalintnum=1;ConverterstringConverter=(from)->String.valueOf(from+num);stringConverter.convert(2);//3但是与匿名对象不同的是,变量num并不需要一定是final。在lambda表达式内部企图改变num的值也是不允许的。2、访问成员变量和静态变量与局部变量不同,我们在lambda表达式的内部能获取到对成员变量或静态变量的读写权。这种访问行为
1、访问局部变量
可以访问lambda表达式外部的final局部变量:
final int num = 1; ConverterstringConverter = (from) -> String.valueOf(from + num); stringConverter.convert(2); // 3
但是与匿名对象不同的是,变量num并不需要一定是final。在lambda表达式内部企图改变num的值也是不允许的。
2、访问成员变量和静态变量
与局部变量不同,我们在lambda表达式的内部能获取到对成员变量或静态变量的读写权。这种访问行为在匿名对象里是非常典型的。
class Lambda4 {
static int outerStaticNum;
int outerNum;
void testScopes() {
Converter stringConverter1 = (from) -> {
outerNum = 23;
return String.valueOf(from);
};
Converter stringConverter2 = (from) -> {
outerStaticNum = 72;
return String.valueOf(from);
};
}
}
作者最新文章
音述AI生成歌曲如何一键制作歌词MV
2026-10-10 13:59
photoshop图层样式在哪
2026-10-04 13:45
photoshop路径工具在哪 怎么用
2026-09-16 13:46
PDF怎么批量添加页码?页码位置和起始页怎么设置?
2026-09-04 14:03
GitLab新手创建项目并推送第一次提交的操作指南
2026-09-03 06:05
上一篇:
MySQL中如何对日期进行格式化?
下一篇:
java虚拟扩展方法怎么实现
热门文章
更多
精品专题
更多
Mac软件
更多
WINDOWS
更多










































