如何使用 Java 中的 lambda 从封闭类访问变量?


由 lambda 表达式的封闭作用域定义的变量可以在 lambda 表达式中访问。lambda 表达式可以访问封闭定义的实例静态变量和方法。它还可以访问 "this" 变量(隐式和显式),该变量可能是封闭类的实例。lambda 表达式还可以设置静态实例变量的值。

示例

interface SimpleInterface {
   int func();
}
public class SimpleLambdaTest {
   static int x = 50;
   public static void main(String[] args) {
      SimpleInterface test = () -> x;     // Accessing of static variable using lambda
      System.out.println("Accessing static variable 'x': " + test.func());

      test = () -> {     // Setting the value to variable using lambda
         return x = 80;
      };
      System.out.println("Setting value for 'x': " + test.func());
   }
}

输出

Accessing static variable 'x': 50
Setting value for 'x': 80

更新于:14-07-2020

712 浏览量

开启你的职业生涯

通过学习课程,获得认证

开始学习
广告
© . All rights reserved.