为了账号安全,请及时绑定邮箱和手机立即绑定

Java不允许在非静态内部类里定义静态成员?

Java不允许在非静态内部类里定义静态成员?

繁星点点滴滴 2019-02-05 15:06:31
Java不允许在非静态内部类里定义静态成员?这是为什么呢?
查看完整描述

2 回答

?
aluckdog

TA贡献1847条经验 获得超7个赞

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

查看完整回答
反对 回复 2019-03-19
?
繁星coding

TA贡献1797条经验 获得超4个赞

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

查看完整回答
反对 回复 2019-03-19
  • 2 回答
  • 0 关注
  • 663 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信