【发布时间】:2016-10-01 05:47:45
【问题描述】:
我是 Java 新手,即使这个问题看起来很简单,我似乎也找不到答案。
我来自 C 背景,习惯于创建枚举并通过像这样调用枚举的名称来使用它们...
enum Security_Levels
{
black_ops,
top_secret,
secret,
non_secret
};
所以我可以使用 black_ops,我会得到一个 0。
在 Java 中,您可以在单独的文件夹中定义一个枚举并将其导入到您想要使用它的位置。但与 C 不同的是,我不能对枚举对象进行简单的调用。
public enum GroupID
{
camera,
projector,
preview,
slr,
led
}
当我尝试调用预览时它不起作用...我必须创建枚举对象的实例
GroupID egroupid_preview = GroupID.preview;
那么即使我创建了一个实例,我也必须创建公共函数来访问下面的值。
public enum GroupID
{
camera(1),
projector(2),
preview(3),
slr(4),
led(5);
private int val;
private GroupID(int val) {
this.val = val;
}
int getVal() {
return val;
}
}
是我做错了,还是 java 让访问枚举变得如此困难?
【问题讨论】:
-
“我必须创建枚举对象的实例”——这不是创建实例。 “我必须创建公共函数才能访问该值”——这是因为
enum不必具有任何类型的“值”,并且该值不必是int。 -
您将枚举视为一个 int,但这实际上并不是 Java 中的内容。枚举是对象。
-
那么你不能像在C中那样在Java中使用枚举吗?如果您必须定义每个项目,那么 Java 中的枚举有什么意义?
-
是的,你不能像使用 C 一样使用 Java。