Java FAQ:内部クラスの制限
Java FAQ:S016 Q-03
class C2008052801 { class C2008052802 { static { } } } public class C2008052800 { public static void main(String[] args) { new C2008052801(); } }
で、
C2008052800.java:4: 内部クラスが static 宣言を持つことはできません。 static { ^ エラー 1 個
class C2008052811 { class C2008052812 { class C2008052813 { } interface C2008052814 { } } } public class C2008052810 { public static void main(String[] args) { new C2008052811(); } }
で、
C2008052810.java:11: 内部クラスが static 宣言を持つことはできません。 interface C2008052814 { ^ エラー 1 個
class C2008052821 { class C2008052822 { static int x; } } public class C2008052820 { public static void main(String[] args) { new C2008052821(); } }
で、
C2008052820.java:4: 内部クラスが static 宣言を持つことはできません。 static int x; ^ エラー 1 個
class C2008052831 { class C2008052832 { static final int x = 1; } } public class C2008052830 { public static void main(String[] args) { new C2008052831(); } }
は OK