1.定义 :使用关键字 enum ,
各个字段用 “,”(逗号)分隔,最后的字段后面用 “;”(分号)结尾,
构造函数要私有化 ,保证不能创建枚举,
属性最好使用 final 修饰 ,保证不能被 set 修改 。
i.e
package com.ycit.enums;
import com.ycit.Exceptions.MyException;
/**
* Created by xlch on 2016/6/15.
*/
public enum Color {
RED("红色",0),
BLUE("蓝色",1),
GREEN("黄色",2),
BLACK("黑色",3)
;
public static String getNameByIndex(Integer index){
for (Color color:Color.values()){
if (color.index==index){
return color.getName();
}
}
throw new RuntimeException(index + " 不代表任务颜色");
}
public static Integer getIndexByName(String name)throws MyException{
for (Color color:Color.values()){
if (color.name.equals(name)){
return color.getIndex();
}
}
throw new RuntimeException(name+"不在定义范围内");
}
public static Color valueOf(int index){
for (Color color:Color.values()){
if (color.index==index){
return color;
}
}
throw new RuntimeException(index+"不代表任务颜色");
}
private final String name;
private final int index;
Color(String name, int index) {
this.name = name;
this.index = index;
}
public String getName() {
return name;
}
public int getIndex() {
return index;
}
public static void main(String [] args){
System.out.println(getNameByIndex(2));
System.out.println(valueOf(2));
System.out.println(valueOf("GREEN"));
System.out.println(getIndexByName("红色"));
}
}
2. 枚举类可以使用的相关方法 (以以上枚举为例)
Color [] colors = Color.values(); //以数组形式返回所有的枚举
Color color1 = Color.valueOf("GREEN");
Color color2 = Color.GREEN; // color1 .equals(color2) 为 true
String black = Color.BLACK.getName();
Integer index = Color.BLUE.getIndex();
Integer number = Color.BLACK.ordinal(); //第几个枚举值,从0 开始 返回 3
参看这里:http://www.codeceo.com/article/java-enum-usage.html
参看这里:http://www.cnblogs.com/frankliiu-java/archive/2010/12/07/1898721.html