我已经声明了这个枚举类: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
提交
取消