Java Enum无效错误

时间:2010-07-30 17:42:30

标签: java

为什么这个枚举无效?

enum Type{

      MPEG-2=2,PASSED_PIDS_ID=3,DVB=4,ATSC=5,NA=6,UNDETERMINED=7

      }

4 个答案:

答案 0 :(得分:13)

您有几个语法错误,第一个标识符中有一个(-在变量名中无效)以及您如何设置值。您不在枚举中使用=,但您可以使用构造函数。试试这个:

enum Type {

    MPEG2(2), PASSED_PIDS_ID(3), DVB(4), ATSC(5), NA(6), UNDETERMINED(7);

    private final int value;

    Type(int value) {
        this.value = value;
    }

    public int getValue() {
        return value;
    }
}

答案 1 :(得分:2)

删除=<number>,它无效。此外,第一种类型的减号不是有效的语法。

Enum有一个名为ordinal()的方法,它返回Enum的顺序,但不推荐依赖它,如果你在将来添加任何新的枚举,然后在它之后添加枚举列表将有一个更高的序数。

如果您希望包含更多数据,那么您可以使用构造函数,例如:

public enum Fruit {

    APPLE("Green"),
    BANANA("Yellow");

    private final String colourDescription;

    Fruit(String colourDescription) {
        this.colourDescription = colourDescription;
    }

    public String getColourDescription() {
        return colourDescription;
    }         
}

因此,对于您的示例,最好不要有额外的信息,或者如上所述创建构造函数并以这种方式传递数字。

答案 2 :(得分:2)

您不能在标识符中包含-。请改用MPEG_2。我也不认为Java中的= [number]语法是正确的。

答案 3 :(得分:1)

它无效,因为“ - ”在标识符中不是有效字符。使用MPEG_2代替MPEG-2将解决它。