-2
class outer3 {
private String x = "outer";
void dostuff() {
String z = "9";
class inner3 {
public void f() {
System.out.println("x is " + x + "z=" + z);
}
}
inner3 in = new inner3();
in.f();
}
}
私はこの1.8.0_65.Is変化のjavacを使用
(zはいえローカル変数である)メソッドローカルインナークラスは、それらがこのコードがうまくコンパイルdeclared.Butする方法のローカルメンバーを使用できないことを読み出しますJavaで、または私はいくつかの間違いを犯す?なぜこの内部クラスコードがコンパイルされますか?
ソースを引用してください。 –
私はkathy sierra scjpガイドを読みましたが、古い版(java 6) –
Java 8で変更されました:http://stackoverflow.com/questions/4732544/why-are-only-final-variables-accessible-in-匿名クラス – Tom