qzg3362

1.创建枚举接口

public interface CodeEnum {
    Integer getCode();
}

2. 枚举类实现接口

public enum  OrderStatusEnum  implements CodeEnum{
    NEW(0, "新订单"),
    FINISHED(1, "完结"),
    CANCEL(2, "已取消")

    ;

    private Integer code;
    private String message;

    private OrderStatusEnum(Integer code, String message) {
        this.code = code;
        this.message = message;
    }
  
//通过code获取enum

  ` public static testEnum getbycode(int index) {
      for(testEnum tEnum : values()) {
        if(tEnum.getCode() == index) {
          return tEnum ;
        }
      }
      return null;
    }


}

3.工具类中实现

/**
* 通过code编码获取message信息
*/
public class EnumUtil {
/**
* 通过code编码获取枚举对象
* @param code 枚举的编码
* @param tClass 枚举类
* @param <T>
* @return
*/
public static<T extends CodeEnum> T getByCode(Integer code, Class<T> tClass){
for(T each:tClass.getEnumConstants()){
if(code.equals(each.getCode())){
return each;
}
}
return null;
}
}

4. 例子

@Data
public class OrderDto {

    private String orderId;
    private String buyerOpenid;
    private String buyerAddress;
    private String buyerPhone;
    private String buyerName;
    private BigDecimal orderAmount;
    private Integer payStatus;
    private Integer orderStatus;
    @JsonSerialize(using=Date2LongSerializer.class)
    private Date updateTime;
    @JsonSerialize(using=Date2LongSerializer.class)
    private Date createTime;
    List<OrderDetail> orderDetailList = new ArrayList();

    /** 一共多少条数据*/
    private Integer amount;

    @JsonIgnore  //将对象转为json格式时,忽略此方法
    public OrderStatusEnum getOrderStatusEnum(){
        return EnumUtil.getByCode(orderStatus,OrderStatusEnum.class);
    }
    @JsonIgnore
    public PayStatusEnum getPayStatusEnum(){
        return EnumUtil.getByCode(payStatus,PayStatusEnum.class);
    }

}

 

分类:

技术点:

相关文章:

  • 2021-12-31
  • 2021-12-23
  • 2021-09-17
  • 2021-09-24
  • 2021-09-24
  • 2021-09-24
  • 2019-12-31
  • 2021-09-24
猜你喜欢
  • 2021-09-24
  • 2021-09-24
  • 2017-12-17
  • 2021-12-06
  • 2021-09-24
  • 2021-09-24
  • 2021-08-14
相关资源
相似解决方案