我已经读过java中的最终变量应该被实例化以编译时间常量表达式。我无法理解什么是编译时常量表达式。
class A{
int i;
int j = i * 5;
}
是p * 5编译时常量表达式吗?
答案 0 :(得分:0)
“编译时常量表达式”是可以在编译期间计算的值。例如,int MINUTES_IN_DAY = 24 * 60;
至于你的阅读,应该始终以该形式实例化最终变量:这是一个不正确的概括。在许多情况下,您需要在运行时评估final
,例如在设置Runnable
时。
请注意,静态最终变量也不需要是编译时常量:您可以使用 static initialisers 初始化它们。