このコードがコンパイルされる理由がわかりません... Javaチュートリアルを引用します:
静的クラス メソッドと同様に、入れ子になった静的クラスは、それを囲むクラスで定義されたインスタンス変数またはメソッドを直接参照することはできません。それらは、オブジェクト参照を通じてのみ使用できます。
ソース: http://docs.oracle.com/javase/tutorial/java/javaOO/nested.html
public class StaticNested {
private String member;
private static String staticMember;
static class StaticNestedClass {
private void myMethod() {
System.out.println(staticMember);
StaticNested nested = new StaticNested();
System.out.println(nested.member);
}
}
}
member に直接アクセスできるとは思っていませんでしたが、コードは正常にコンパイルされます。Java仕様を誤解していますか?
フォーマットについて申し訳ありません。ブラウザと投稿エディタに苦労しています。