Java:Java不允许在非静态内部类里定义静态成员?这是为什么呢?

2024-11-16 19:04:12
推荐回答(2个)
回答(1):

楼主你的原因有两个问题,我最近也被这个内部类问题困然很久,我借你宝地提出,如果你有好的解释希望大家共享:
1、如果内部类只被包含他的那个外部类使用,那你怎么解释Map中的Entry类这种现象呢?
2、首先类的加载都是第一次主动使用才会加载。非静态内部类在我建立一个外部类对象时才会加载,但此时我再去加载这个内部类的的静态部分,这个逻辑没有问题。

回答(2):

这么想吧 非静态内部类相当于实例变量,加载外部类的时候先加载静态代码属性方法代码块然后才是其他对应的部分,如果此时实例变量中包含静态代码块 那么我们到底改是怎么个加载顺序啦。不明白继续追问