2012-04-13 65 views
2

我可能得到的任何類型的結果,所以我定義枚舉這樣的java:枚舉聲明中錯誤說錯位的構造

public enum Result 
    { 
     1, 2,3, 4,5, 6,7, 8 
    } 


String resultvalue = calculateResult(); 

    switch (Result .valueOf(resultvalue)) 
      { 

      } 

但我在枚舉聲明本身歌廳錯誤說Mispalced構造。

有誰請幫助我

回答

7

這些都是不枚舉值有效標識符,基本上是這樣。你需要用一個字母或_作爲它們的前綴。您還需要使標識符具有唯一性 - 目前您已有0010四次...

一旦您對此進行了排序,其餘的應該可以 - 但如果您還有其他問題,請發佈簡短但完成程序,而不是片段。

+0

像往常一樣,你是一流的 – Gajjini 2012-04-13 16:04:22

2

0001不是有效的Java標識符。 Java標識符不能以數字開頭。

0

雖然我不明白你想達到什麼,爲什麼你有重複。類似的東西(也許使用int而不是String)應該可以工作。

public enum Result { 
    One("0001"), 
    Two("0010") 
    ... 

    private String val; 

    private Result(String val) { 
     this.val = val; 
    } 
} 
0

我不知道爲什麼計算結果會返回一個字符串。我會在這裏返回一個int,但是...

String resultvalue = calculateResult(); 
switch (Integer.parseInt(resultvalue)) { 
    case 0b0001: 

    case 0b0010: 

    case 0b0110: 

    case 0b1010: 

    case 0b1100: 

} 
0

什麼是你試圖實現的?如果您需要:

  1. 從字符串解析整數,則
  2. 檢查,它從一組特定的值的,最後
  3. 開關它的價值,

那麼你不需要枚舉。只要用Integer.parseInt(),Set.contains()switch來做。