2013-01-14 29 views
28

我想檢查在我的VO中設置了什麼值。如何在開關盒中使用枚舉

以下是我的錯誤。我越來越 「合格的情況下,標籤MyEnum.UserType.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

我發現在SO中至少有一次這個問題是有用的,upvotes的數量意味着ppl與我一致。這個語法非常不尋常,當你在定義常量的類之外時可以使用一個非限定常量名。 – Tristan

回答

48

讀取錯誤消息。它告訴你究竟是該怎麼做。

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

} 
+0

非常感謝你......它的工作原理 – Sree

+1

閱讀錯誤信息比在SO上發佈問題真的更難以等待答案嗎? ':/' –

+1

如果你有另一個常量在另一個類中調用同樣的東西,那麼怎麼辦?在這種情況下,「醫生」不會含糊不清? – HelloGoodbye