可能重複:
Cannot refer to a non-final variable inside an inner class defined in a different method
Why inner classes require 「final」 outer instance variables [Java] ?的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中刪除最後一個關鍵字。最終的關鍵字製作有什麼不同?