• 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

更多...

加载中...