这里声明了一个代表颜色的枚举Color,里面定义了三个枚举的值,红色、蓝色和绿色。当然,枚举里的值是可以任意定义的,你把它理解为常量就行了。那内部究竟是怎么实现的呢?
创建枚举类型要使用 enum 关键字,当使用这个关键字声明枚举并列举出值的时候,隐含了所创建的类型都是 java.lang.Enum 类的子类(java.lang.Enum 是一个抽象类)。枚举类型符合通用模式 Class Enum<E extends Enum<E>>,而 E 表示枚举类型的名称。枚举类型的每一个值都将映射到 protected Enum(String name, int ordinal) 构造函数中,在这里,每个值的名称都被转换成一个字符串,并且序数设置表示了此设置被创建的顺序。也就是说,刚才的颜色的枚举的代码,实际上执行了三次默认的构造方法:
new Enum<Color>("RED",0);
new Enum<Color>("BLUE",1);
new Enum<Color>("GREEN",2);
所以我们可以尝试这么使用枚举: