为什么我需要声明local variable
为final
如果在方法中定义的我的Inner class
需要使用它?内部类和局部变量
实施例:
class MyOuter2 {
private String x = "Outer2";
void doStuff() {
final String y = "Hello World";
final class MyInner {
String z = y;
public void seeOuter() {
System.out.println("Outer x is "+x);
System.out.println("Local variable is "+y);
MyInner mi = new MyInner();
mi.seeOuter();
}
}
}
}
为什么字符串y
需要是一个最终恒定?它如何影响?
看看这个讨论是否有助于http://techtracer.com/2008/04/14/mystery-of-accessibility-in-local-inner-classes/ – kosa 2012-04-26 17:52:59
可能的重复[无法引用内部的非最终变量在不同的方法中定义的内部类](http://stackoverflow.com/questions/1299837/cannot-refer-to-a-non-final-variable-inside-an-inner-class-defined-in-a- differen) – 2012-04-26 17:53:59
[关于Java中局部最终变量的问题](http://stackoverflow.com/questions/5947352/question-about-local-final-variable-in-java)。 – Lion 2012-04-26 18:33:29