Java8新特性:Effectively final

  • 内容
  • 评论
  • 相关

Java 中局部内部类和匿名内部类访问的局部变量必须由 final 修饰,以保证内部类和外部类的数据一致性。但从 Java 8 开始,我们可以不加 final 修饰符,由系统默认添加,当然这在 Java 8 以前的版本是不允许的。Java 将这个功能称为 Effectively final 功能。

编写同样的代码,分别在 Java 7 和 Java 8 下运行,代码如下:

public class Test {
    public static void main(String[] args) {
        String name = "C";
        new Runnable() {
            @Override
            public void run() {
                System.out.println(name);
            }
        }
    }
}

图 1 是 Java 7 编译结果,图 2 和图 3 是 Java 8 编译结果。

Java 7 运行结果
图 1

本文标题:Java8新特性:Effectively final

本文地址:https://www.hosteonscn.com/7459.html

评论

0条评论

发表评论

邮箱地址不会被公开。 必填项已用*标注