switch语句不能使用枚举的成员变量


出现问题:

写了个代码,需要使用枚举的来判断对于的事务处理

然而这里的编译器报错:constant expression required

switch 的case中,必须要用常量,想了一下,枚举里面的code是可以相同的

实在不想在 类里面 定义 public static final int code 这样的常量来代替枚举

解决方法:

在枚举类中添加一个根据code返回枚举的方法  参数类型为Integer,为其他类型时需自行调整方法代码

public static ChatEnum getByCode(Integer code){
        for(ChatEnum v:values()) {
            if(v.code==code) {
                return v;
            }
        }
        return null;
 }

 这样就不会报错了! 更多关于枚举的知识请阅读  https://www.cnblogs.com/wffzk/p/15294234.html