这里是引用
public enum AgreementAuditStatus{
confirmed(1,"待审核"),
pass(2,"审核通过"),
reject(3,"审核驳回"),
revoked(4,"撤销");
private Integer code;
private String msg;
AgreementAuditStatus(Integer code, String msg) {
this.code = code;
this.msg = msg;
}
private static Map<Integer,AgreementEnum.AgreementAuditStatus> codeObject ;
public Integer getCode() {
return code;
}
public String getMsg() {
return msg;
}
static {
codeObject = Arrays.asList(values()).stream().collect(Collectors.toMap(AgreementEnum.AgreementAuditStatus::getCode, UnaryOperator.identity()));
}
public static AgreementEnum.AgreementAuditStatus getByCode(int code){
return codeObject.get(code);
}
}
用一个map来保存code和枚举对象的映射关系:
private static Map<Integer,AgreementEnum.AgreementAuditStatus> codeObject ;
然后用静态代码块启动的时候初始化map
static {
codeObject = Arrays.asList(values()).stream().collect(Collectors.toMap(AgreementEnum.AgreementAuditStatus::getCode, UnaryOperator.identity()));
}
然后通过get方法获取map中的对象
public static AgreementEnum.AgreementAuditStatus getByCode(int code){
return codeObject.get(code);
}