为什么java的非静态内部类中不能有static属性,却能有static final属性???

黄开军 发布于 2013/11/24 20:25
阅读 852
收藏 2
加载中
0
宏哥
宏哥
为了制造麻烦
0
z
zjphzxg
可以思考下内部类的对象生命周期和static的作用,答案就自然出来了
0
淘淘我的小宝宝
淘淘我的小宝宝
这个主要是因为final类型是常量,在编译期间jvm有优化,常量池会维护这些变量。再看内部类,主要抓住这个依赖关系分析。非静态内部类不能脱离外部类这个上下文实例化。但是常量池使得final变量脱离了类实例化这个条件,编译期间变可确定。
0
Seventh7
Seventh7
楼上正解
返回顶部
顶部