2013-01-14 21 views
28

私のVOで設定されている値を確認しようとしています。enumをスイッチケースで使用する方法

以下は私のクラスです。私は私がここで間違ってやっているものを識別するために私を助けてください

「資格のケースラベル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; 

     } 
    } 

} 
+5

代わりに、「case DOCTORS:」を使用してみてください。 –

+2

エラーメッセージにあなたがすべきことを言いたいことをやってみませんか? – fge

+4

私はこの質問を少なくとも1回はSOに入れておくことが有益であり、アップノートの数はpplが私に同意していることを意味します。この構文は、定数が定義されているクラスの外にあるときに、修飾されていない定数名を使用することができる場合は、まれです。 – Tristan

答えて

48

エラーメッセージをお読みください。それは正確に何をするかを伝えます。

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

} 
+0

ありがとうございました...それは働いていました – Sree

+1

エラーメッセージを読むのは、質問を投稿して回答を待つよりも本当に難しかったですか? ':/' –

+1

別のクラスで同じものが呼び出された別の定数があればどうでしょうか?その場合、 'DOCTORS'はあいまいではないでしょうか? – HelloGoodbye

関連する問題