枚举类都有values()方法吗?
在 Java 中,所有枚举类都会隐式拥有values()方法,这个方法不需要手动定义,是编译器在编译时自动为枚举类生成的。
具体说明:
values()方法的作用是 返回枚举类中所有枚举常量的数组,数组顺序与枚举常量的声明顺序一致。- 该方法的返回类型是 当前枚举类的数组类型(例如
enum Color { RED, GREEN }中,values()返回Color[])。
示例:
// 定义枚举类
enum Season {
SPRING, SUMMER, AUTUMN, WINTER
}
public class EnumDemo {
public static void main(String[] args) {
// 调用 values() 方法获取所有枚举常量
Season[] seasons = Season.values();
// 遍历输出
for (Season s : seasons) {
System.out.println(s);
// 输出:SPRING、SUMMER、AUTUMN、WINTER(与声明顺序一致)
}
}
}
注意:
values()是 编译器生成的方法,在枚举类的源码中看不到,但可以直接调用。- 该方法与
Enum类中的getEnumConstants()功能类似,但values()是枚举类特有的,且返回类型更具体(当前枚举类型的数组)。 - 所有枚举类都继承自
java.lang.Enum,但values()方法并不在Enum类中定义,而是由编译器动态添加。
因此,任何枚举类都可以直接使用 values() 方法,无需额外定义。

1003

被折叠的 条评论
为什么被折叠?



