Java-枚举类

今天尝试着用IDEA写SSM框架代码

遇到了枚举类感觉挺新奇的,原本要用复杂的代码才能实现的功能一下子就写成了

public enum AppointStateEnum {//继承自java.lang.Enum类,不能继承其他类
    SUCCESS(1, "预约成功"), NO_NUMBER(0, "库存不足"), REPEAT_APPOINT(-1, "重复预约"), INNER_ERROR(-2, "系统异常");

    private int state;

    private String stateInfo;

    private AppointStateEnum(int state, String stateInfo) {//构造函数
        this.state = state;
        this.stateInfo = stateInfo;
    }

    public int getState() {
        return state;
    }

    public String getStateInfo() {
        return stateInfo;
    }

    public static AppointStateEnum stateOf(int index) {//获得相应的状态
        for (AppointStateEnum state : values()) {
            if (state.getState() == index) {
                return state;
            }
        }
        return null;
    }
}

在写枚举类的时候要注意:

1.一定要把枚举变量的定义放在第一行,并且以分号结尾。

2.构造函数必须私有化

当在枚举类中写一个抽象方法时,他变成了抽象类,就要在枚举的后面实现这个方法,类似匿名内部类

public enum Num {
    ONE(1) {
        @Override
        public Num getNextNum() {
            return TWO;
        }
    }, TWO(2) {
        @Override
        public Num getNextNum() {
            return THREE;
        }
    }, THREE(3) {
        @Override
        public Num getNextNum() {
            return ONE;
        }
    };

    private int time;

    private Num(int time) {
        this.time = time;
    }

    //一个抽象方法
    public abstract Num getNextNum();
}

猜你喜欢

转载自blog.csdn.net/xuxuan1997/article/details/80848419