【发布时间】:2011-10-05 06:43:14
【问题描述】:
我有一个 Java 枚举:
public enum Months
{
JAN, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV, DEC
}
我想通过索引访问枚举值,例如
Months(1) = JAN;
Months(2) = FEB;
...
我该怎么做?
【问题讨论】:
-
在计算机科学中,索引从 0 开始,而不是 1 ;-)
-
您确定要这样做吗?通常,除了实现低级数据结构(然后使用名称等替代机制来实现持久性)之外,您不应触及序数。
-
您也可以使用 java.util.Calendar 类中的常量。 1 - 12 月的编号为 0 - 11。请注意 12,因为那是 UnDecember(与农历有关)。但我只是好奇为什么要重新发明 JRE 中已经“存货”的月份常量?
-
2FredOverflow:同意,我使用了错误的索引。 2汤姆·霍廷:是的,我确定。我用一些框架保存数据,然后我得到整数索引,而不是枚举。 2Chris Aldrich:这只是与真实案例不匹配的虚拟示例。
-
顺便说一下,Java 8 及更高版本内置了
Month枚举。