Java中的内部本地类

时间:2015-02-08 23:12:58

标签: java local-class

public class Main {
    public static void main(String[] args) {
        int b=1;
        final int c=2; 
        String s1[] = new String[]{"A","B","C"};

        class InnerMain{                                    
            int a=5;

            public void show(){ 
                System.out.println(s1[0]);
                System.out.println("A:" + a);
                System.out.println("B:" + b);
                System.out.println("C:" + c);
            }
        }

        InnerMain test =new InnerMain();
        test.show();
    }
}

我研究过的书说,本地类只能使用final变量和本地类所在方法的引用。在这个例子中,我使用的变量b不是{{ 1}}或参考。它跑了,我没有得到任何错误。怎么样?有人可以解释这种行为吗?

1 个答案:

答案 0 :(得分:5)

你的书可能已经过时了。从Java 8开始,您可以使用effectively final局部变量。

如果您尝试在本地类定义之前,之后或之中的任何地方更改b,则会出现编译器错误。