为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

www说 2023-11-01 21:46:31
我已经声明了这个枚举类: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个赞

这里有两个错误:

  1. 枚举的定义不应该包含class在其中。根据经验,常量应为大写。

    enum RoleName {
        WORKER,
        BOSS;
    }
  2. RoleName.Worker.name()不允许作为case表达式,因为它不是常量表达式。您可以转换requestRole.getName()为 aRoleName并将其用作表达式switch

    switch (RoleName.valueOf(requestRole.getName())) {
        case WORKER: /* ... */ break;
    }


查看完整回答
反对 回复 2023-11-01
  • 1 回答
  • 0 关注
  • 64 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信