今天在switch里使用Enum时,报错Constant expression required。查询发现switch使用限制条件有switch的case只能使用常量,编译时能拿到的值。
原部分调用代码
switch (type) {
case FailoverOperation.PAUSE:
。
。
return responsesDTO;
default:
return responsesDTO;
原枚举类
public enum FailoverOperation {
PAUSE("pause"),
RECOVER("recover");
private String comment;
FailoverOperation(String comment){
comment = this.comment;
}
public static final List<String> list = Arrays.stream(values()).map(FailoverOperation::getComment).collect(Collectors.toList());
}
也就是说switch是无法使用枚举类的,那么如果还想使用枚举的话只能改成这样
switch (type) {
String temp = FailoverOperation.PAUSE;
case temp:
。
。
return responsesDTO;
default:
return responsesDTO;
或者不使用枚举,但也可以像枚