1、定义一个CodeEnum接口,供每个枚举实现,以便重写共用方法
public interface CodeEnum {
Integer getCode();
String getMsg();
}
2、枚举类实现CodeEnum接口,并重写方法
import ·····.CodeEnum;
import lombok.Getter;
@Getter
public enum ProductStateEnum implements CodeEnum {
UP_PRODUCT(0,"已上架"),
DOWN_PRODUCT(1,"已下架")
;
private Integer code;
private String msg;
ProductStateEnum(Integer code, String msg) {
this.code = code;
this.msg = msg;
}
}
3、定义枚举工具类
public class EnumUtil {
public static <T extends CodeEnum> String getByCode(Integer code, Class<T> t){
for(T item: t.getEnumConstants()){
if(item.getCode().equals(code)){
return item.getMsg();
}
}
return "";
}
}
4、实体类中调用
import ·····.ProductStateEnum;
import ·····.EnumUtil;
import lombok.Data;
import javax.persistence.Entity;
import javax.persistence.Id;
import java.math.BigDecimal;
import java.util.Date;
@Entity
@Data
public class Product {
@Id
private String pId;
private String pName;
private Integer pState;
public String getProductStatusEnum(){
return EnumUtil.getByCode(pState,ProductStateEnum.class);
}
}