一、枚举类基本语法
在 Java SE5 中添加了一个看似很小的特性,即 enum 关键字,它使得我们在需要群组并使用枚举类型集时,可以很方便的处理。
创建一个简单的ColorEnum
public enum ColorEnum { RED,YELLOW,BULE,GREED,BLACK; }
调用的收直接在方法中使用 ColorEnum.RED 即可
ColorEnum red = ColorEnum.RED;
而且 Enum 有一个特别实用的特性,它可以在switch语句内使用:
ColorEnum red = ColorEnum.RED; switch (red) { case RED: System.out.println("this's red color"); break; case BULE: System.out.println("this's bule color"); break; default: System.out.println("this's other color"); }
由于 switch 是要在有限的可能值集合中进行选择,因此它和 enum 是绝佳的组合。
自定义构造方法枚举类如何定义?
public enum RedisEnum { ADD(1, "add"), DEL(2, "delete"), query(3, "query"); private Integer type; private String name; private RedisEnum(Integer type, String name) { this.type = type; this.name = name; } public Integer getType() { return type; } public String getName() { return name; } }
枚举类提供的 API
values(); 可以遍历 enum 实例。values()方法返回 enum 实例的数组,而且该数组中的元素严格保持其在 enum 中声明时的顺序,因此可以在循环中使用 values()返回的数组。
valueOf(String key);
ordinal();返回一个 int值,这个是每个 enum 实例在声明时的次序,从 0 开始。
getDeclaringClass();enum 实例上调用这个方法可以获取其所属的 num 类
name();返回 enum 实例声明时的名字,这与使用 toString 方法效果相同
toString();返回 enum 实例声明时的名字
equals(Object obj);enum 重写了 equals 和 hashcode
hashCode();enum 重写了 equals 和 hashcode