【发布时间】:2013-05-17 21:30:53
【问题描述】:
这应该很明显,但事实并非如此。有没有办法像下面的示例那样获取枚举的值?
示例:
public enum Numbers
{
zero, one, two
}
//later on
Numbers numbers = Numbers.zero;
// this is the part that I can not figure out the java equivalent of?
int number = numbers.value();
这有意义吗?
【问题讨论】:
-
docs.oracle.com/javase/7/docs/api/java/lang/Enum.html#ordinal() - 也就是说,这不是有用的信息。为什么需要知道?
-
^^ "返回这个枚举常量的序数(它在它的枚举声明中的位置,初始常量的序数为零)。大多数程序员不会使用这个方法。"我在文档中看到了这个,但它看起来不像我需要的……是这样吗?
-
好吧,既然真的没有枚举的“值”这样的东西,我不知道你需要什么。那将是最接近它的东西,因为它是一个表示排序的整数。
-
我有一个枚举来跟踪在线程上运行的状态机,我需要将枚举的值作为整数集成到另一个使用 30 个常量 int 而不是一个枚举。 :(
-
我建议您查看
enum上的 Oracle 教程 - 您需要为此定义自己的方案并提供一个 getter,而不是依赖于序数。