Java枚举类的使用

实际开发中,我们通常在数据库中使用数字作为状态的值,但是返给前台要展示的时候要显示具体的内容是什么,这个时候就要使用遍历,再set,这样做代码看起来很笨重。下面做一个简单的方法使用枚举类来快速的返回状态的内容。

1.创建枚举类
Java枚举类的使用_第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层再遍历赋值。

你可能感兴趣的:(扩展,SSM)