我已经声明了这个枚举类:
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;
答案 0 :(得分:4)
这里有两个错误:
枚举的定义中不应包含class
。根据经验,这些常数应为大写。
enum RoleName {
WORKER,
BOSS;
}
RoleName.Worker.name()
不允许作为case
表达式,因为它不是a constant expression。您可以将requestRole.getName()
转换为RoleName
并将其用作a switch
expression。
switch (RoleName.valueOf(requestRole.getName())) {
case WORKER: /* ... */ break;
}