黑皮书说到枚举类自动继承的Java.lang.Enum,所以枚举类不能再继承其他的类的。
枚举类可以来优化大量的if else
将if else 里面的值写成枚举类,通过.values遍历这个数组。
上面那个例子 我要判断传进来的对象到底是哪个季节,可以用枚举类。
原来判断需要写多个if else 来确定到底是夏天还是冬天,简化了代码开发。更加的优雅
在经常开发中,如果想要有insert或者update 可以用枚举类来表示。
项目中用到枚举类来实现路由跳转。
public enum UIConstant {
//用户页面显示
Doctor(LoadType.EAGER) {
@Override
public String toString() {
return "/com/NJITZX/doctor/view/doctor.fxml";
}
},
Doctor_ADD(LoadType.LAZY) {
@Override
public String toString() {
return "/com/NJITZX/doctor/view/addDoctor.fxml";
}
},
Doctor_PASS(LoadType.EAGER) {
@Override
public String toString() {
return "/com/NJITZX/doctor/view/pass.fxml";
}
},
Patient_LIST(LoadType.LAZY) {
@Override
public String toString() {
return "/com/NJITZX/patient/view/patinet.fxml";
}
},
Doctor_UPDATE(LoadType.LAZY) {
@Override
public String toString() {
return "/com/NJITZX/doctor/view/updateDoctor.fxml";
}
}, DrugType_ADD(LoadType.LAZY) {
@Override
public String toString() {
return "/com/NJITZX/drug/view/drugtype.fxml";
}
}, Echarts_Doctor(LoadType.LAZY) {
@Override
public String toString() {
return "/com/NJITZX/doctor/view/showdata.fxml";
}
}, Pass_Change(LoadType.LAZY) {
@Override
public String toString() {
return "/com/NJITZX/doctor/view/chagePass.fxml";
}
}, Drug_ADD(LoadType.LAZY) {
@Override
public String toString() {
return "/com/NJITZX/drug/view/AddDrug.fxml";
}
}, Patient_Register(LoadType.LAZY) {
@Override
public String toString() {
return "/com/NJITZX/patient/view/register.fxml";
}
}, Chat_Init(LoadType.LAZY) {
@Override
public String toString() {
//com/NJITZX/chat/view/chat.fxml
return "/com/NJITZX/chat/view/chat.fxml";
}
}, Patine_Diagnose(LoadType.LAZY) {
@Override
public String toString() {
return "/com/NJITZX/patient/view/diagnose.fxml";
}
}, Work(LoadType.LAZY) {
@Override
public String toString() {
return "/com/NJITZX/patient/view/work.fxml";
}
}, Pay(LoadType.LAZY) {
@Override
public String toString() {
return "/com/NJITZX/patient/view/pay.fxml";
}
}, Drug(LoadType.LAZY) {
@Override
public String toString() {
return "/com/NJITZX/drug/view/drug.fxml";
}
},ShowDrugData(LoadType.LAZY){
@Override
public String toString() {
return "/com/NJITZX/drug/view/showdrug.fxml";
}
};
//更新用户页面
//加入对象 loadType
private LoadType loadType;
UIConstant(LoadType loadType) {
this.loadType = loadType;
}
public LoadType getLoadType() {
return loadType;
}
}
将所有的页面URL通过枚举类存储起来,在调用枚举类来加载即可,大大简化了开发。