一.用枚举表述数据字典

1.代码:

package com.inspire.jdk.caculate;

/**
 * Created by yaming
 * 用枚举表述常量数据字段
 */
public enum  StateEnum {
   //使用构造方法创建对象,每一个都是StateEnum的实例
    SUCCESS(1, "成功"),
    FAILED(0, "失败");


    private int state;
    private String stateInfo;

    public int getState() {
        return state;
    }
public String getStateInfo() {
        return stateInfo;
    }


    StateEnum(int state, String stateInfo){
        this.state = state;
        this.stateInfo = stateInfo;
    }

    /**
     * 根据int类型的index,找到对应StateEnum
     * @param index
     * @return
     */
    public static StateEnum stateOf(int index){
        for (StateEnum state:values()){
            if (state.getState()==index){
                return state;
            }
        }
        return null;
    }

    /**
     * 根据int类型的index,找到对应的String的值
     * @param index
     * @return
     */
    public static String valuesOf(int index){
        for (StateEnum state:values()){
            if (state.getState()==index){
                return state.getStateInfo();
            }
        }
        return "null";
    }


}

2.java中的枚举类(enum)和java中的普通类(class)一样,只是预先定义了一系列的示例变量

如:
public enum Color {
// 每个变量都是 Color 的一个示例
RED, YELLOW, BLUE;
}

  2.1 所以枚举内部直接就可以书写示例变量,如RED,YELLOW,BLUE.
  2.2 枚举有一些自然获得的成员方法,Color.values()方法

  2.3 枚举类和普通类相似的一个依据就是,枚举也可以含有构造函数

3.总结:

枚举限制住了该类型的实例变量的个数和可能性,因为一个枚举的实例变量在定义该枚举时就确定了