java:枚举声明错误说错误的构造函数

时间:2012-04-13 13:16:58

标签: java

我可能得到任何类型的结果,所以我这样定义枚举

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


String resultvalue = calculateResult();

    switch (Result .valueOf(resultvalue ))
          {

          }

但是我在Enum宣言本身就说错误的构造函数。

有人可以帮助我吗

5 个答案:

答案 0 :(得分:7)

基本上,它们不是枚举值的有效标识符。你需要在它们前面添加一个字母或_。您还需要使标识符唯一 - 目前您已经有0010四次...

一旦你对它进行了整理,剩下的就应该没问题了 - 但是如果你还有其他问题,请发一个简短但完整的程序,而不是片段。

答案 1 :(得分:2)

0001不是有效的Java标识符。 Java标识符不能以数字开头。

答案 2 :(得分:0)

虽然我不明白你想要实现什么以及为什么你有重复。这样的事情(可能使用int而不是String)应该有效。

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

    private String val;

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

答案 3 :(得分:0)

我不确定为什么计算结果会返回一个String。我会在这里返回一个int但是......

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

   case 0b0010:

   case 0b0110:

   case 0b1010:

   case 0b1100:

}

答案 4 :(得分:0)

你想要达到的目标是什么?如果您需要:

  1. 解析字符串中的整数,然后
  2. 检查它是否来自某组值,最后是
  3. 切换其值,
  4. 然后你不需要枚举。只需使用Integer.parseInt()Set.contains()switch

    即可