繁体   English   中英

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

[英]constant expression required in switch with string

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

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. 枚举的定义中不应包含class 根据经验,常量应该是大写的。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM