可能的重复问题:
无法在另一个方法中定义的内部类中引用非最终变量
为什么内部类需要“final”外部实例变量[Java]?
class MyOuter {
private String x = "Outer";
void doStuff(){
final String z = "local variable";
class MyInner {
public void seeOuter(){
System.out.println("Outer x is" + x);
System.out.println("Local variable z is" + z); // does
// not compile if final keyword from String z is removed
}
}
}
}
上述代码运行正常。 我想知道如果我从字符串z中删除final关键字,编译器为什么会报错。final关键字有什么区别?