带字符串的 switch 中所需的常量表达式

我已经声明了这个枚举类:

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;


www说
浏览 67回答 1
1回答

阿晨1998

这里有两个错误:枚举的定义不应该包含class在其中。根据经验,常量应为大写。enum RoleName {     WORKER,     BOSS; }RoleName.Worker.name()不允许作为case表达式,因为它不是常量表达式。您可以转换requestRole.getName()为 aRoleName并将其用作表达式switch。switch (RoleName.valueOf(requestRole.getName())) {     case WORKER: /* ... */ break; }
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java