引用自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的内部(非静态)类和其他类一样是通过类加载器加载的,那么为什么我们不能为它们定义静态初始化器呢?
这个限制背后的原因是什么?