Подтвердить что ты не робот

Как использовать перечисление в корпусе переключателя

Я пытаюсь проверить, какие значения установлены в моем VO.

Ниже приведены мои стихи. я осознаю " Квалифицированная метка case 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");
    }

}

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;

        }
    }

}
4b9b3361

Ответ 1

Поскольку компилятор знает, какой тип перечисления вы оцениваете в операторе switch, вы должны отбросить "квалифицированную" часть, как предполагает ошибка (в вашем случае: MyEnum.UserType.), И просто использовать "неквалифицированный" перечислитель DOCTORS. Увидеть ниже:

switch(myEnum.getUserType())
{
    case DOCTORS: 
        break;
}