枚举类型 定义了两件事:
-
枚举常量名称
-
常量的顺序
以下代码声明了一个名为Level的公共枚举类型,它具有四个枚举常量:LOW,MEDIUM,HIGH 和 URGENT。
Level 枚举类型定义了四个枚举常量。
级别枚举类型的变量只能是以下四个值之一 – LOW,MEDIUM,HIGH 和 URGENT 或 null。可以通过使用枚举类型名称作为限定符和点符号来引用枚举常量。
以下代码将Level枚举类型常量的值分配给一些 局部变量 :
但是不能实例化枚举类型。例如,以下代码导致编译时错误:
Level badAttempt = new Level(); // A compile-time error
枚举顺序号 枚举类型为其所有常量分配一个顺序号,称为ordinal。顺序值从零开始,在常数列表中从第一个到最后一个依次递增1。第一个枚举常量赋值为0,第二个为1,第三个为2,依此类推。
分配给Level枚举类型中声明的常量的序数值是:将0分配给LOW,1分配给MEDIUM,2到HIGH,以及3到URGENT。
每个枚举常量都有一个与常量的标识符相同的名称。例如,级别枚举类型中的LOW常数的名称为“LOW”。可以分别使用name()和ordinal()方法获取枚举常量的名称和序号值。每个枚举类型都有一个名为values()的 静态方法 ,它按在枚举主体中声明的顺序返回一个常量数组。
以下代码打印在Level枚举类型中声明的所有枚举常量的名称和序号。
枚举常量的反向查找
可以从名称或位置获得枚举常量的引用。使用valueOf()方法就可以做到这点。
枚举常量的反向查找区分大小写。可以使用values()方法返回的数组,通过顺序执行反向查找。values()方法返回的数组中的值的顺序与枚举常量的声明顺序相同。枚举常量的序数从零开始。
以下代码演示了如何反转查找枚举常量:
枚举常量的范围
java.util.EnumSet集合类与枚举类型的枚举常量列表一起使用。
下面的代码演示了如何使用EnumSet类来处理枚举常量的范围。
尚学堂全新课程IT百战程序员,最全最系统的视频网站课程,共有6000集视频,包含java、大数据、前端等技术,更重要的是还有老师督促、跟进。