繁体   English   中英

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

[英]java : Error in Enum Declaration Saying Misplaced Constructors

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

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


String resultvalue = calculateResult();

    switch (Result .valueOf(resultvalue ))
          {

          }

但我在Enum宣言本身就说错误的建设者。

请有人帮帮我

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

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

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

虽然我不明白你想要实现什么以及为什么你有重复。 类似的东西(可能使用int而不是String)应该可以工作。

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

    private String val;

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

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

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

   case 0b0010:

   case 0b0110:

   case 0b1010:

   case 0b1100:

}

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

  1. 然后解析字符串中的整数
  2. 检查它是否来自某组值,最后
  3. 切换它的价值,

那你就不需要枚举了。 只需使用Integer.parseInt()Set.contains()switch

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM