我终于有理由在Java中实现enum
,并且在1.6中发现它是无效类型。所以我宣布枚举为是枚举Java中的枚举
public enum MyEnum = {A=0, B=1, C=3};
并且在Eclipse中得到错误无效类型。
我终于有理由在Java中实现enum
,并且在1.6中发现它是无效类型。所以我宣布枚举为是枚举Java中的枚举
public enum MyEnum = {A=0, B=1, C=3};
并且在Eclipse中得到错误无效类型。
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
等
你可以,但他们会成为枚举对象的一部分,就像[行星示例](http:// docs.oracle.com/javase/tutorial/java/javaOO/enum.html)。正确的措辞可能是“它们不是数字,而是包含*数字值的对象” – eis 2013-03-06 14:52:23
这不是他们如何使用。见的例子在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条。由于所有书籍都没有提到“枚举”或“枚举”。 Java枚举definitly不等于C/C++或Pascal。 – user931501 2013-03-08 02:52:11
public enum ModuleType {A,B,C}
在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}
要回答你的问题:enum
在技术上是不是一个类型。因此,您不能像尝试过那样定义类型为enum
的变量。
enum
是定义作为特殊数据类型的枚举(缩写为enum)类型的关键字。 一旦定义了枚举类型(非常类似于如何定义类),可以使用枚举类型的名称引用它。请检查enum types documentation。
有几百万个在线枚举代码示例。你还没有试图比较一个单一的,因为他们都会解决你的问题。下一次,你应该至少做一个基本的谷歌搜索(如'java enum example')... – brimborium 2013-03-06 14:51:04