为什么在内部类定义一个static字段必须是final的
每一个非静态内部类,必须维持一个对其外部类实例的引用,这就表明了非静态内部类的作用域是实例级别;而static关键字显式指定某个属性、方法或内部类的作用域是属于类级别(static修饰的依赖于类的加载而加载)。既然二者在语言层面要求的作用域不同,自然无法编译通过。
为什么添加final就可以了呢?
final关键字的字面语义就是指明不可变,用在属性上,表示属性一旦赋值后即不可改变。与static关键字合用即表示定义一个常量,从这个角度看有点类似c++中的const。一旦作为常量,其作用域自然不再是实例
原创
2022-05-22 12:03:44 ·
461 阅读 ·
0 评论