Как использовать перечисление в корпусе переключателя
Я пытаюсь проверить, какие значения установлены в моем 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;
}
}
}
Ответы
Ответ 1
Поскольку компилятор знает, какой тип перечисления вы оцениваете в операторе switch, вы должны отбросить "квалифицированную" часть, как предполагает ошибка (в вашем случае: MyEnum.UserType.
), И просто использовать "неквалифицированный" перечислитель DOCTORS
. Увидеть ниже:
switch(myEnum.getUserType())
{
case DOCTORS:
break;
}