小编mal*_*ibu的帖子

从 Java 中的 lambda 表达式引用变量

为什么 Java 允许这样做,

class Test {
    boolean a;
    public void test() {
        ...
        object.method(e -> a = true);
    }
}
Run Code Online (Sandbox Code Playgroud)

但不是这个,

class Test {
    public void test() {
        boolean a;
        ...
        object.method(e -> a = true);
    }
}
Run Code Online (Sandbox Code Playgroud)

对于第二个示例,它抛出: local variables referenced from a lambda expression must be final or effectively final

第二个例子的唯一区别是变量是在方法内部而不是类本身声明的。我是 Java 编程的初学者,我是否遗漏了一些明显的东西?

java final anonymous-function

0
推荐指数
1
解决办法
118
查看次数

标签 统计

anonymous-function ×1

final ×1

java ×1