2012-04-13 107 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来做。