我想在开关案例中使用以下枚举作为参考:
public final enum myEnum {
VALUE1,
VALUE2,
VALUE2,
...
}
我已经在互联网上搜索了一段时间,但发现只有在switch语句中使用枚举的例子和案例作为参数。我想只使用枚举的值作为case语句的参数,switch参数是另一个变量。像这样:
String otherVariable = "VALUE2";
switch (otherVariable) {
case myEnum,VALUE1.toString():
...
break;
case myEnum,VALUE2.toString():
...
break;
default:
...
break;
当我直接编码时,我得到一个错误" case表达式必须是常量表达式"。我究竟做错了什么?我该如何实现呢?
亲切的问候 WolfiG
答案 0 :(得分:5)
你想要的可能是
String other = "VALUE2";
MyEnum myEnum = MyEnum.valueOf(other);
switch (myEnum) {
case VALUE1:
...
case VALUE2:
...
}
您无法使用myEnum.toString()
,因为它是一种方法调用,可以在调用之间创建不同的结果(即非常量)。