枚举类型较传统定义常量的方式,除了具有参数类型检测的优势之外,还具有其他方面的优势。
用户可以将一个枚举类型看作是枚举类型的一个实例,它继承于java.lang.Enum类,当定义一个枚举类型时,每一个枚举类型成员都可以看作是枚举类型的一个实例,这些枚举类型成员都默认被final、public、static修饰,所以当使用枚举类型成员时直接使用枚举类型名称调用枚举类型成员即可。
由于枚举类型对象继承于java.lang.Enum类,所以该类中一些操作枚举类型的方法都可以应用到枚举类型中。下面将列举了枚举类型中的常用方法。
方法名称 具体含义 使用方法
values() 该方法可以将枚举类型成员以数组的形式返回 枚举类型名称.values()
valueOf() 该方法可以实现将普通字符串转换为枚举实例 枚举类型名称.valueOf(“a”)
compareTo() 该方法用于比较两个枚举对象在定义时的顺序 枚举对象.compareTo()
ordinal() 该方法用于得到枚举成员的位置索引 枚举对象.ordinal()
(1)、values()
枚举类型实例包含一个values()方法,该方法将枚举类型的成员变量实例以数组的形式返回,也可以通过该方法获取枚举类型的成员。
例:在项目中创建ShowEnum类,在该类中使用枚举类型中的values()方法获取枚举类型中的成员变量。
使用枚举类型中的values()方法获取枚举类型中的成员变量,运行结果:
例子中,由于values()方法将枚举类型的成员以数组的形式返回,所以根据该数组的长度进行循环操作,然后将该数组中的值返回。
(2)、valueOf()与compareTo()
枚举类型中静态方法valueOf()可以将普通字符串转换为枚举类型,而compareTo()方法用于比较两个枚举类型对象定义时的顺序。
例:在项目中创建EnumMethodTest类,在该类中使用枚举类型中的valueOf()与compareTo()方法。
使用compareTo()方法比较两个枚举类型成员定义的顺序,运行结果:
调用compareTo()方法返回的结果,正值代表方法中参数在调用该方法的枚举对象位置之前;0代表两个互相比较的枚举成员的位置相同;负值代表方法中参数在调用该方法的枚举对象位置之后。