我终于有理由在Java中实现enum
并且在1.6中发现它是无效的类型。所以我将枚举声明为
public enum MyEnum = {A=0, B=1, C=3};
并在Eclipse中获取错误无效类型。
答案 0 :(得分:7)
这不是他们的使用方式。请参阅http://docs.oracle.com/javase/tutorial/java/javaOO/enum.html上的示例,例如
public enum Day {
SUNDAY, MONDAY, TUESDAY, WEDNESDAY,
THURSDAY, FRIDAY, SATURDAY
}
Java枚举比C#强大得多。它们(几乎)是完整的物体,因此不能用数字来表示。但是,它们可以包含数字,并且它们具有ordinal number value。
您可以使用
获得数字值public enum MyEnum {
A(0), B(1), C(3);
private final int number;
MyEnum(int number) {
this.number = number;
}
}
答案 1 :(得分:3)
Java enums
与C和C ++ enums
完全不同。最大的区别是enum
常量是完整的对象,而不是编译时整数常量。
在您的示例中,A
,B
和C
是对象。因此,不允许使用A=0, B=1, C=3
之类的结构。
我建议您查看tutorial。
如果 将数值与enum
常量相关联,则可以达到类似的效果:
public enum MyEnum {
A(0), B(1), C(3);
public final int val;
private MyEnum(int val) {
this.val = val;
}
}
完成此操作后,您可以使用MyEnum.A.val
等
答案 2 :(得分:3)
在Java中,enum
是一种类型,但它与整数不兼容。枚举对象更接近于类而不是原语,因为它们可以包含方法,成员变量等。
Java允许您通过在枚举中添加int
成员并为不同的枚举成员以不同方式初始化它来获得所需的效果,如下所示:
public enum MyEnum {
A(1), B(2), C(3);
int val;
private MyEnum (int v) {
val = v;
}
public int value() {
return val;
}
};
现在,enum
的每个成员都有一个公共方法value()
,它返回与枚举的相应元素关联的整数值。
答案 3 :(得分:2)
你做不到这一点。 enum
以下列方式在java中定义
enum myenum{a,b,c,d}
答案 4 :(得分:0)
public enum ModuleType {A,B,C}
答案 5 :(得分:0)
要回答您的问题:enum
在技术上不是一种类型。因此,您无法像尝试那样定义enum
类型的变量。
enum
是一个定义枚举(缩写为枚举)类型的关键字,它是一种特殊的数据类型。
一旦定义了枚举类型(非常类似于定义类的方式),就可以使用枚举类型的名称来引用它。请查看enum types documentation。