public enum Color {
// 1:枚举类型必须要放在开始的位置
YELLOW("黄色",1),
RED("红色",2),
GREEN("绿色",3),
HAHA("绿色",3);
@Getter @Setter
private String color;
@Getter @Setter
private int num;
// 2:必须要有, 并且必须要用private类型
private Color(String color, int num) {
this.color = color;
this.num = num;
}
public static String getColor(int num) {
for (Color c : Color.values()) {
if (c.getNum() == num) {
return c.color;
}
}
return null;
}
@Override
public String toString() {
return "color:" + color + " num:" + num;
}
public static void main(String[] args) {
// 1: 常规用法
Color color_1 = Color.RED;
color_1.getColor();
if(Color.RED != color_1) {
System.out.println(" --- 1 " + false);
}
if(Color.GREEN.equals(Color.HAHA)) {
System.out.println(" ---- 2 " + false);
} else {
System.out.println(" --- 3 " + false);
}
// 2: 遍历
System.out.println(" ------- 2 ------- ");
Color[] colorList = Color.values();
for(Color c : colorList) {
System.out.println("name: " + c.getNum());
System.out.println("color: " + c.getColor());
System.out.println("ordinal: " + c.ordinal()); //内置函数,指示枚举类型的顺序
}
// 3: EnumMap
System.out.println(" ------- 3 ------- ");
EnumMap<Color, Integer> enumMap = new EnumMap<Color, Integer>(Color.class);
enumMap.put(Color.RED, 111);
enumMap.put(Color.GREEN, 222);
enumMap.put(Color.YELLOW,333);
System.out.println(JSON.toJSONString(enumMap));
}
}
参考文档:
1: http://www.cnblogs.com/happyPawpaw/archive/2013/04/09/3009553.html
2: https://www.ibm.com/developerworks/cn/java/j-lo-enum/