Quoth JLS #8.1.3:
内部类不能声明静态初始化器(§8.7)......
这被证明是这样的:
class A {
class B {
static { // Compile-time Error: Cannot define static initializer in inner type A.B
System.out.println("Class is initializing...");
}
}
}
现在既然 Java 的内部(非静态)类像其他所有类一样由类加载器加载,为什么我们不能为它们设置静态初始化器呢?
这种限制背后的原因是什么?