如果一个内部类中有静态成员,那么该内部类就必须为静态内部类。
这是为什么?
看了一下楼上帖子的讨论部分,还是存在一个疑问,总结一下讨论:
静态成员变量依附于当前类的加载,也就是内部类的加载
非静态内部类的加载依赖于外部类的实例,即内部类的默认构造函数会引用到外部类实例。
不是很理解的是,类加载的时候,必须把构造函数的参数穿进去么,这不是在实例化一个对象么,如果我们用ClassLoader去加载内部类,没有穿构造函数的参数,是不是就会加载不成功。
还有一个小的疑问,静态内部类的单例实现,不就是靠着内部类的延迟加载么?
所以这句话,是否是不是静态的内部类,不应该都不会加载么
8 回答6.5k 阅读
4 回答681 阅读✓ 已解决
2 回答3.4k 阅读
3 回答1.9k 阅读✓ 已解决
1 回答2.1k 阅读✓ 已解决
1 回答2.1k 阅读✓ 已解决
1 回答958 阅读✓ 已解决