编译时间常数必须为:
- declared final
- primitive or String
- initialized within declaration
- initialized with constant expression
所以
private final int x = getX();不是恒定的。
第二个问题
private int y = 10;不是恒定的(在这种情况下是非最终的),因此优化程序无法确定该值将来不会更改。因此,它无法将其优化为恒定值。答案是:不,它与编译时间常数的处理方式不同。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)