如何在开关盒中使用枚举

Sre*_*ree 29 java enums switch-statement

我正在尝试检查我的VO中设置的值.

以下是我的clasess.我得到" 合格的案例标签MyEnum.UserType.DOCTORS必须用不合格的枚举常量DOCTORS替换 "

请帮我识别我在这里做错了什么.

MyEnum.java

public MyEnum{
    private UserType userType;

    public UserType getUserType(){
        return userType;
    }

    public void setUserType(UserType userType){
        this.userType = userType;
    }

    public static enum UserType{
        DOCTORS("D"),
        PATIENT("P"),
        STAFF("S");
    }

}
Run Code Online (Sandbox Code Playgroud)

EnumTest.java

public EnumTest {

    .....
    public void onGoBack(MyEnum myEnum) {

        switch(myEnum.getUserType())
        {
            case UserType.DOCTORS: // this shows "The qualified case label MyEnum.UserType.DOCTORS must be replaced with the unqualified enum constant DOCTORS"
                break;

        }
    }

}
Run Code Online (Sandbox Code Playgroud)

Mat*_*all 49

阅读错误消息.它告诉你到底该做什么.

switch(myEnum.getUserType())
{
    case DOCTORS: 
        break;
}
Run Code Online (Sandbox Code Playgroud)

  • Matt Ball,我们都处于不同的经验水平.无需谴责或贬低感谢您帮助的人.让我们保持专业.该用户花时间提出问题,可能只需要一些关于如何解释错误消息的指导.我个人只是在学习Java,我来到这里是因为我不知道答案仅仅是例外. (5认同)
  • Matt Ball,这个问题对我来说似乎合情合理.鉴于我们可以在Java中的其他地方使用`MyEnum.ABC`和`MyEnum.XYZ`,我感到惊讶和困惑,发现这个相同的语法在`switch-case`中是非法的. (3认同)
  • 阅读错误消息真的比在 SO 上发布问题并等待答案更难吗?`:/` (2认同)