Wol*_*fiG 0 java enums switch-statement
我想在开关案例中使用以下枚举作为参考:
public final enum myEnum {
VALUE1,
VALUE2,
VALUE2,
...
}
Run Code Online (Sandbox Code Playgroud)
我已经搜索了很长一段时间的互联网,但只找到了在switch语句中使用枚举的例子和案例陈述作为参数.我想只使用枚举的值作为case语句的参数,switch参数是另一个变量.像这样的东西:
String otherVariable = "VALUE2";
switch (otherVariable) {
case myEnum,VALUE1.toString():
...
break;
case myEnum,VALUE2.toString():
...
break;
default:
...
break;
Run Code Online (Sandbox Code Playgroud)
当我直接编码时,我得到一个错误"case表达式必须是常量表达式".我究竟做错了什么?我该如何实现?
亲切的问候WolfiG
你想要的可能是什么
String other = "VALUE2";
MyEnum myEnum = MyEnum.valueOf(other);
switch (myEnum) {
case VALUE1:
...
case VALUE2:
...
}
Run Code Online (Sandbox Code Playgroud)
你不能使用,myEnum.toString()因为它是一个方法调用,它可以在调用之间创建不同的结果(即非常量).