方法一:经过在枚举类中添加方法,遍历枚举类的全部对象进行判断,以下添加getOrderStatusEnum方法:bash
import lombok.Getter;
/**
* @author: lichujun
* @date: 2018-08-15
*/
@Getter
public enum OrderStatusEnum {
New(0, "新订单"),
FINISHED(1, "完结"),
CANCEL(2, "已取消"),
;
private Integer code;
private String message;
OrderStatusEnum(Integer code, String message) {
this.code = code;
this.message = message;
}
public static OrderStatusEnum getOrderStatusEnum(Integer code) {
for (OrderStatusEnum orderStatusEnum: OrderStatusEnum.values()) {
if (orderStatusEnum.code.equals(code)) {
return orderStatusEnum;
}
}
return null;
}
}
复制代码
方法二:经过泛型获取枚举对象,避免重复代码。工具
(1)CodeEnum接口ui
public interface CodeEnum {
Integer getCode();
}
复制代码
(2)枚举类实现接口CodeEnum的getCode方法this
import lombok.Getter;
/**
* @author: lichujun
* @date: 2018-08-15
*/
@Getter
public enum OrderStatusEnum implements CodeEnum {
New(0, "新订单"),
FINISHED(1, "完结"),
CANCEL(2, "已取消"),
;
private Integer code;
private String message;
OrderStatusEnum(Integer code, String message) {
this.code = code;
this.message = message;
}
}
复制代码
(3)编写工具类获取实现了CodeEnum接口的全部枚举类的枚举对象spa
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;
}
}
复制代码