我正在翻译这段英文:
尝试在另一个类文件中使用枚举 TestEnumClass,代码如下:
它给我编译时错误:
case表达式必须是常量表达式
请建议我,我哪里做错了。
在尝试使用枚举类的 switch case 语句时,我遇到了错误 - case 表达式必须是常量表达式:
我的枚举类如下:
public enum TestEnumClass {
TEST1("TEST1"),
TEST2("TEST2"),
TEST3("TEST3");
private String enumConstant;
private TestEnumClass(String algoConstant) {
this.enumConstant = algoConstant;
}
public String getEnumConstant() {
return enumConstant;
}
}
尝试在另一个类文件中使用枚举 TestEnumClass,代码如下:
public class TestIndexOf {
public static void main(String[] args) {
String str = args[0];
switch(str){
case TestEnumClass.Test1.getEnumConstant() : System.out.println("test1"); break;
case TestEnumClass.Test2.getEnumConstant() : System.out.println("test2"); break;
}
}
}
它给我编译时错误:
case表达式必须是常量表达式
请建议我,我哪里做错了。
TestEnumClass.Test1.getEnumConstant()
也不被认为是常量。 - resuemanfinal static String
,您可以使用if
而不是switch
,或者您可以在TestEnumClass.valueOf(str)
上切换,并将case
作为枚举值本身。 - resueman