Dmi*_*kov 21 java inner-classes
Java Tutorial说,由于内部类与封闭类的实例相关联,因此它(内部类)不能定义任何静态成员本身.
对我来说有趣的是为什么内部类不能声明静态成员,例如,某个private static字段,这个内部类的实例可能与同一内部类的其他实例共享?这只是Java中的一个实现,必须被视为理所当然或其他什么?
基本上只是一个武断的决定.我们没有理由也不可能得到支持,但还算不上什么好的理由来支持它.只是声明外部类中的静态字段.
另外,这个引用可能不完全正确:我相信你可以在内部类中声明一个静态的serialVersionUID.
内部类是未显式或隐式声明为静态的嵌套类。内部类不能声明静态初始值设定项(第 8.7 节)或成员接口。内部类不能声明静态成员,除非它们是编译时常量字段(第 15.28 节)。
至于为什么这样指定,我不知道。我的猜测是内部类被设计为小型辅助类,其复杂性应该非常有限。