我终于有理由enum
在 Java 中实现 an 并发现它在 1.6 中是无效类型。所以我将枚举声明为
public enum MyEnum = {A=0, B=1, C=3};
并在 Eclipse 中获取错误无效类型。
我终于有理由enum
在 Java 中实现 an 并发现它在 1.6 中是无效类型。所以我将枚举声明为
public enum MyEnum = {A=0, B=1, C=3};
并在 Eclipse 中获取错误无效类型。
这不是它们的使用方式。请参阅http://docs.oracle.com/javase/tutorial/java/javaOO/enum.html中的示例,例如
public enum Day {
SUNDAY, MONDAY, TUESDAY, WEDNESDAY,
THURSDAY, FRIDAY, SATURDAY
}
Java 枚举比 C# 中的枚举要强大得多。它们(几乎)是成熟的对象,因此不能仅用数字表示。然而,它们可以包含一个数字,并且它们确实有一个序数值。
你可以有数字值
public enum MyEnum {
A(0), B(1), C(3);
private final int number;
MyEnum(int number) {
this.number = number;
}
}
Javaenums
与 C 和 C++ 完全不同enums
。最大的区别是enum
常量是成熟的对象而不是编译时整数常量。
在您的示例中A
,B
和C
是对象。因此A=0, B=1, C=3
,不允许使用类似的构造。
我建议看一下教程。
如果您必须将数值与enum
常量相关联,则可以实现类似的效果,如下所示:
public enum MyEnum {
A(0), B(1), C(3);
public final int val;
private MyEnum(int val) {
this.val = val;
}
}
完成此操作后,您可以使用MyEnum.A.val
etc访问这些值。
在 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()
返回与枚举的相应元素关联的整数值。
你不能这样做。enum
在java中定义如下
enum myenum{a,b,c,d}
public enum ModuleType {A,B,C}
回答你的问题:enum
从技术上讲不是一种类型。因此,您无法enum
像尝试的那样定义类型的变量。
enum
是定义枚举(缩写为 enum)类型的关键字,它是一种特殊的数据类型。一旦定义了枚举类型(非常类似于定义类的方式),您就可以使用枚举类型的名称来引用它。请检查枚举类型文档。