商城首页欢迎来到中国正版软件门户

您的位置:首页 > 编程开发 >Java Lambda的使用范围是什么

Java Lambda的使用范围是什么

  发布于2023-04-25 阅读(0)

扫一扫,手机访问

1、访问局部变量

可以访问lambda表达式外部的final局部变量:

final int num = 1;
Converter<Integer, String> stringConverter =
        (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<Integer, String> stringConverter1 = (from) -> {
            outerNum = 23;
            return String.valueOf(from);
        };
 
        Converter<Integer, String> stringConverter2 = (from) -> {
            outerStaticNum = 72;
            return String.valueOf(from);
        };
    }
}
本文转载于:https://www.yisu.com/zixun/579091.html 如有侵犯,请联系admin@zhengruan.com删除

热门关注