|
@@ -18,6 +18,8 @@ package com.baomidou.mybatisplus.toolkit;
|
|
|
|
|
|
import com.baomidou.mybatisplus.enums.IEnum;
|
|
|
|
|
|
+import java.math.BigDecimal;
|
|
|
+
|
|
|
/**
|
|
|
* <p>
|
|
|
* 枚举处理工具类
|
|
@@ -41,8 +43,17 @@ public class EnumUtils {
|
|
|
public static <E extends Enum<?> & IEnum> E valueOf(Class<E> enumClass, Object value) {
|
|
|
E[] es = enumClass.getEnumConstants();
|
|
|
for (E e : es) {
|
|
|
- if ((value instanceof String && e.getValue().equals(value))
|
|
|
- || e.getValue() == value) {
|
|
|
+ if (e.getValue() == value) {
|
|
|
+ // 基本类型
|
|
|
+ return e;
|
|
|
+ } else if (value instanceof String && e.getValue().equals(value)) {
|
|
|
+ // 字符串类型
|
|
|
+ return e;
|
|
|
+ } else if (value instanceof BigDecimal && ((BigDecimal) e.getValue()).compareTo((BigDecimal) value) == 0) {
|
|
|
+ // 结果是:-1 小于,0 等于,1 大于
|
|
|
+ return e;
|
|
|
+ } else if (String.valueOf(e.getValue()).equals(String.valueOf(value))) {
|
|
|
+ // 其他类型
|
|
|
return e;
|
|
|
}
|
|
|
}
|