为什么内部类不能有静态(非最终)字段和方法?Java内部类和静态方法或字段
此问题之前已发布,但发布的答案是:这是一个设计决策,或者是因为内部类发生在外部类的上下文中,并且无法声明静态方法。
然而这些答案并没有阐明我的问题。允许内部类的静态字段和方法的后果是什么?我的猜测是两个限制都是连接的。由于静态方法需要访问内部类的其他静态方法和非最终静态变量,甚至需要访问外部类(以便能够更改内部状态),这将导致内部类的行为类似于静态方法。不过,JVM可以将内部类中静态方法的访问权限限制在内部类中的静态方法和数据中。然而这引发了一个问题:为什么我们不能在内部类中声明静态非最终变量?
这是设计还是有问题?
亲切的问候
根本问题是它没有意义。内部类本质上不是静态的;它被附加到外部类的一个实例上。在内部类上静态方法是无稽之谈。 –
你可以在内部类中声明静态成员。该类必须是静态的内部类。 –
@BalkrishnaRawool OP询问内部类(非静态嵌套类)。 – Pshemo