web-dev-qa-db-fra.com

Comment utiliser enum dans un boîtier de commutateur

J'essaie de vérifier quelles valeurs sont définies dans mon VO.

Voici ma clasess. J'obtiens "L'étiquette de cas qualifié MyEnum.UserType.DOCTORS doit être remplacée par la constante d'énumération non qualifiée DOCTORS"

Veuillez m'aider à identifier ce que je fais mal ici.

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;

        }
    }

}
29
Sree

Comme le compilateur sait quel type d'énumération vous évaluez dans l'instruction switch, vous devez supprimer la partie "qualifiée" comme le suggère l'erreur (dans votre cas: MyEnum.UserType.) et utilisez simplement l'énumération "non qualifié" DOCTORS. Voir ci-dessous:

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