• 技术文章 >java >java基础

    Java中Lambda的使用范围

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

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

    1、访问局部变量

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

    1

    2

    3

    4

    5

    final int num = 1;

    Converter<Integer, String> stringConverter =

            (from) -> String.valueOf(from + num);

      

    stringConverter.convert(2);     // 3

    但是与匿名对象不同的是,变量num并不需要一定是final。在lambda表达式内部企图改变num的值也是不允许的。

    2、访问成员变量和静态变量

    与局部变量不同,我们在lambda表达式的内部能获取到对成员变量或静态变量的读写权。这种访问行为在匿名对象里是非常典型的。

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    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学习网