当前位置: 首页 > 知识库问答 >
问题:

如何在开关大小写中使用枚举

林丁雷
2023-03-14

我正在尝试检查我的VO中设置了哪些值。

下面是我的女儿。我得到的是“合格的病例标签MyEnum.UserType.Doctors必须替换为不合格的枚举常量Doctors”

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");
    }

}

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;

        }
    }

}

共有1个答案

公羊英达
2023-03-14

由于编译器知道您在switch语句中计算的是什么类型的枚举,因此应该删除错误提示的“合格”部分(在您的示例中:myEnum.userType.),而只使用“不合格”枚举doctors。见下文:

switch(myEnum.getUserType())
{
    case DOCTORS: 
        break;
}
 类似资料: