ITPub博客

首页 > IT职业 > IT职场 > Java中Lambda的使用范围

Java中Lambda的使用范围

IT职场 作者:farshow 时间:2021-09-11 09:58:26 0 删除 编辑

在之前的学习中,我们已经对Lambda表达式有所接触,并进行了相关的操作。那么在具体的使用过程上,我们需要明确其具体的使用范围。本篇将以三种访问类型为例,局部变量、成员变量和静态变量,并为大家讲解不同访问情景下,Lambda表达式的不同操作,下面一起来看具体内容。

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);
        };
    }
}

以上就是Java中Lambda的使用范围,大家可以就具体的使用场景,先进行说明方面的理解,然后再运行实例代码部分。更多Java学习指路:Java基础

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/1159/viewspace-2830467/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2019-04-15

  • 博文量
    126
  • 访问量
    873