我可能得到任何类型的结果,所以我这样定义枚举
public enum Result
{
1, 2,3, 4,5, 6,7, 8
}
String resultvalue = calculateResult();
switch (Result .valueOf(resultvalue ))
{
}
但是我在Enum宣言本身就说错误的构造函数。
有人可以帮助我吗
答案 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)
你想要达到的目标是什么?如果您需要:
然后你不需要枚举。只需使用Integer.parseInt()
,Set.contains()
和switch
。