Java内联
final字段可在编译时初始化为
常量表达式
。
根据Java语言规范,使用在编译时可以求值的表达式初始化的任何
staticfinal*字段都必须编译为“内联”字段值的字节码。也就是说,没有动态链接将出现内部类Main,告诉它来获取值A从InterfaceA在运行时。
对字节码进行反编译,您会发现
getA()简单地将常量推入
1并返回它。
- -JavaWorld引用说
static final
。Kumar指出,语言规范在 常量变量 的定义中static
不需要。我认为Kumar是正确的,而JavaWorld是错误的。 __



