今天尝试着用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();
}