一、基础知识
枚举常量为枚举类型中的公有静态成员,且其类型是声明他们的枚举类型。这些常量被称为是自类型化的。由于是静态常量,所以可直接使用关系运算符来比较两个枚举常量是否相等。此外可通过枚举类型定义的values方法和valueOf方法获取枚举常量数值。
class Solution { enum Color { RED, BLUE, GREEN } public static void main(String[] args) { Color[] colors = Color.values(); for (Color c : colors) System.out.println(c); } }
枚举常量是其枚举类型的对象,在定义枚举类型时可定义构造函数和方法。所有的枚举都会自动继承java.lang.Enum,部分方法如下:
- ordinal方法返回枚举常量的序数值。
- compareTo方法返回与同类型其他枚举常量比较的差值。
- equals方法返回与同类型其他枚举常量是否相等。
class Solution { enum Color { RED("#FF0000"), BLUE("#0000FF"), GREEN("#00FF00"); private String code; Color(String code) { this.code = code; } String getCode() { return code; } } public static void main(String[] args) { System.out.println(Color.valueOf("RED"));//输出RED System.out.println(Color.valueOf("BLUE"));//输出BLUE System.out.println(Color.valueOf("GREEN"));//输出GREEN Color[] colors = Color.values(); for (Color c : colors) System.out.println(c.ordinal()); for (Color i : colors) for (Color j : colors) { System.out.println(i.compareTo(j));//返回i.ordinal - j.ordinal System.out.println(i.equals(j)); } } }