/**
* 枚举的工具类
*/
public class EnumUtil {
public static <T extends CodeEnum> T getByCode(Integer code, Class<T> enumClass){
for(T each: enumClass.getEnumConstants()){
if(code.equals(each.getCode())){
return each;
}
}
return null;
}
}
使用示例如下所示:
import lombok.Getter; /** *支付状态枚举 */ @Getter public enum PayStatusEnum implements CodeEnum { UNPAID(0,"待支付"), PAID(1,"已支付"), REFUND(2,"已退款"); private Integer code; private String message; PayStatusEnum(Integer code, String message) { this.code = code; this.message = message; } }
/** * 枚举接口 */ public interface CodeEnum { Integer getCode(); }
import com.fasterxml.jackson.annotation.JsonIgnore; import lombok.Data; /** * 页面数据模型 */ @Data public class OrderVO{ private Integer payStatus; @JsonIgnore public PayStatusEnum payStatusEnum() { return EnumUtil.getByCode(payStatus, PayStatusEnum.class); } }
好了 , 接下来页面就可以使用orderVO对象来获取数据库中存储的类似枚举数据对应的中文值了 !!!