我已经声明了这个枚举类:public enum class RoleName {
Worker,
Boss
}我想在开关/外壳中使用它switch (requestRole.getName()) {
case RoleName.Worker.name():但我有这个编译错误constant expression required如果我删除,class我会收到此 IntelliJ IDEA 错误:'class' keyword is expected after 'enum;
1 回答
阿晨1998
TA贡献2037条经验 获得超6个赞
这里有两个错误:
枚举的定义不应该包含
class在其中。根据经验,常量应为大写。enum RoleName { WORKER, BOSS; }RoleName.Worker.name()不允许作为case表达式,因为它不是常量表达式。您可以转换requestRole.getName()为 aRoleName并将其用作表达式switch。switch (RoleName.valueOf(requestRole.getName())) { case WORKER: /* ... */ break; }
添加回答
举报
0/150
提交
取消
