在Java中,枚举(enum
)类型可以有一个静态方法 values()
,它返回该枚举类型所有枚举常量构成的数组。关于这个数组中枚举常量的顺序,JLS(Java Language Specification)有明确的规定:
- 枚举常量的顺序:
values()
方法返回的数组中枚举常量的顺序是它们被声明在枚举类型中的顺序。
这意味着,数组的第一个元素是枚举中第一个声明的常量,第二个元素是第二个声明的常量,以此类推。
下面是一个简单的例子来说明这一点:
public enum Day {
SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY;
public static void main(String[] args) {
Day[] days = Day.values(); // 获取所有Day枚举常量的数组
for (Day day : days) {
System.out.println(day);
}
}
}
运行上述代码,输出将会是枚举常量按照它们在 enum
中声明的顺序:
SUNDAY
MONDAY
TUESDAY
WEDNESDAY
THURSDAY
FRIDAY
SATURDAY
需要注意的是,枚举的 values()
方法是在枚举类型的元数据中定义的,由Java运行时提供,因此你不需要自己实现它。而且,由于枚举常量的顺序是固定的,它们可以被用作数组索引或集合元素的顺序依据。