实际开发中,我们通常在数据库中使用数字作为状态的值,但是返给前台要展示的时候要显示具体的内容是什么,这个时候就要使用遍历,再set,这样做代码看起来很笨重。下面做一个简单的方法使用枚举类来快速的返回状态的内容。
1.创建枚举类
2.枚举类的内容,展示出所有的状态字段。
public enum StateEnum {
UNSUBMITTED(0, "未提交"), CANCLE(1, "撤销"), PENDING(2, "待审批"), ONGOING(3, "审批中"), NOT_THROUGH(4, "审核不通过"), REJECT(5,"审批驳回"), ADOPT(6, "审批通过"), PART_IN(98, "部分入库"), RECEIVABLES(99, "收款");
//Integer类型
private int code;
//描述
private String desc;
ApprovalStateEnum(int code, String desc) {
this.code = code;
this.desc = desc;
} //省略get set方法
//构造一个传入Integer类型的值,返回String类型字段的方法
public static String getInfo(Integer code) {
if (code != null) {
for (ApprovalStateEnum entity : ApprovalStateEnum.values()) {
if (entity.getCode() == code) {
return entity.getDesc();
}
}
}
return null;
}
}
3.在实体类里面创建好状态的返回字段。
@ApiModelProperty("状态")
private Integer state;
@ApiModelProperty("状态,用于展示")
private String stateName;
//返回时不可修改state的值,万一前台要使用state这个状态的时候,值改变了就无法继续进行,创建一个stateName用于展示状态的内容。
public Integer getState() {
return state;
}
public void setState(Integer state) {
//直接在此处给state赋值的同时根据state的值调用枚举类中的getInfo()方法,给StateName附上枚举中的DESC
this.stateName = StateEnum .getInfo(state);
this.state = state;
}
public String getStateName() {
return stateName;
}
public void setState(String state) {
this.stateName = stateName;
}
此时返回给前台的StateName就是state的内容了,并不需要在service层再遍历赋值。