• 技术文章 >java >java基础

    Java中Lambda的使用范围

    小妮浅浅小妮浅浅2021-03-08 12:40:20原创2382

    在之前的学习中,我们已经对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基础

    专题推荐:java lambda
    上一篇:java创造匿名对象的两种方法 下一篇:如何获取java类中的字段修饰符?

    相关文章推荐

    • java中使用Connection管理事务• java集合如何实现数组的转换• java创造匿名对象的两种方法• Java接口中Lambda表达式的匹配• Java不同数组类型之间的关系

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网