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}}或参考。它跑了,我没有得到任何错误。怎么样?有人可以解释这种行为吗?
答案 0 :(得分:5)
你的书可能已经过时了。从Java 8开始,您可以使用effectively final局部变量。
如果您尝试在本地类定义之前,之后或之中的任何地方更改b
,则会出现编译器错误。