web-dev-qa-db-ja.com

スイッチケースで列挙型を使用する方法

VOに設定されている値を確認しようとしています。

以下は私の分類です。 「修飾されたケースラベル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;

        }
    }

}
29
Sree

コンパイラーはswitchステートメントで評価している列挙型を知っているため、エラーが示唆するように「修飾」部分を削除する必要があります(あなたの場合:MyEnum.UserType.)そして、単に「非修飾」列挙DOCTORSを使用します。下記参照:

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