![]() |
1
23
它保证被当作一个常量表达式来处理,并且保证被 section 15.28 of the JLS :
…
现在,这并不意味着它一定是内联的。然而,规范第13.1节规定:
换言之,
即使表达式本身不是常量
,不应引用
|
![]() |
2
10
用javac 1.6.0 U14编译将生成以下字节码:
所以字符串在编译时被连接起来,结果包含在Class2的常量池中。 |
![]() |
3
0
它不是由编译器内联的,而是由解释器在运行时内联的,如果可能,还可以转换为汇编代码。 不能保证,因为并非所有的解释程序(JVM)都以相同的方式工作。但最重要的实现是可行的。 不幸的是,我没有链接来支持这一点:( |
![]() |
4
0
我怀疑,但不确定,这会起作用,但听起来不是个好主意。 这样做的“正常”方法是:
|
![]() |
5
0
见
JLS 13.4.9
.虽然它不显式要求编译器内联常量,但它提示条件编译和对中常量的支持
|
![]() |
6
0
看起来您正在编写自己的内置功能版本
你使用的是不包含EnUM的旧版本的Java吗? |