【发布时间】:2015-09-08 09:25:36
【问题描述】:
我遇到了一个奇怪的问题。
我声明了一个静态最终变量,但未初始化。 我有一个私有方法 xyz(),其中有一个 Switch 语句。
但我打赌编译时错误:“无法分配最终字段 ABC”-“删除 ABC 的最终修饰符”。
附: switch case 正在检查从 ENUM 返回的值
请帮帮我。
这里是代码:-
private static final String ABC;
private void xyz(){
switch(ENUMImpl.getCountry()){ //** ENUMImpl is an ENUM class with a method getCountry() which returns the ENUM value
case COUNTRY1:
ABC = "TMZ"; // The final field ABC cannot be assigned :: Remove final modifier of ABC
break;
default:
ABC = "NA";
break;
}
}
【问题讨论】:
-
final字段只能直接赋值或使用静态初始化器。
标签: java enums switch-statement final