From b11013ee80cb00022890d950ff7f666909de2082 Mon Sep 17 00:00:00 2001 From: Charles7c Date: Sat, 16 Nov 2024 21:29:09 +0800 Subject: [PATCH] =?UTF-8?q?fix(json/jackson):=20=E4=BF=AE=E5=A4=8D=20BaseE?= =?UTF-8?q?num=20=E5=8F=8D=E5=BA=8F=E5=88=97=E5=8C=96=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E7=B1=BB=E5=9E=8B=E4=BB=85=E6=94=AF=E6=8C=81=E6=95=B0=E5=80=BC?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/validation/constraints/EnumValueValidator.java | 7 ++++--- .../json/jackson/serializer/BaseEnumDeserializer.java | 4 +++- .../starter/web/autoconfigure/mvc/BaseEnumConverter.java | 5 +---- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/continew-starter-core/src/main/java/top/continew/starter/core/validation/constraints/EnumValueValidator.java b/continew-starter-core/src/main/java/top/continew/starter/core/validation/constraints/EnumValueValidator.java index 86ba9896..0100f68f 100644 --- a/continew-starter-core/src/main/java/top/continew/starter/core/validation/constraints/EnumValueValidator.java +++ b/continew-starter-core/src/main/java/top/continew/starter/core/validation/constraints/EnumValueValidator.java @@ -16,6 +16,7 @@ package top.continew.starter.core.validation.constraints; +import cn.hutool.core.convert.Convert; import cn.hutool.core.text.CharSequenceUtil; import jakarta.validation.ConstraintValidator; import jakarta.validation.ConstraintValidatorContext; @@ -54,20 +55,20 @@ public class EnumValueValidator implements ConstraintValidator 0) { - return Arrays.asList(enumValues).contains(value.toString()); + return Arrays.asList(enumValues).contains(Convert.toStr(value)); } Enum[] enumConstants = enumClass.getEnumConstants(); if (enumConstants.length == 0) { return false; } if (CharSequenceUtil.isBlank(enumMethod)) { - return findEnumValue(enumConstants, Enum::toString, value.toString()); + return findEnumValue(enumConstants, Enum::toString, Convert.toStr(value)); } try { // 枚举类指定了方法名,则调用指定方法获取枚举值 Method method = enumClass.getMethod(enumMethod); for (Enum enumConstant : enumConstants) { - if (method.invoke(enumConstant).equals(value)) { + if (Convert.toStr(method.invoke(enumConstant)).equals(Convert.toStr(value))) { return true; } } diff --git a/continew-starter-json/continew-starter-json-jackson/src/main/java/top/continew/starter/json/jackson/serializer/BaseEnumDeserializer.java b/continew-starter-json/continew-starter-json-jackson/src/main/java/top/continew/starter/json/jackson/serializer/BaseEnumDeserializer.java index cb05eead..6c81f4a2 100644 --- a/continew-starter-json/continew-starter-json-jackson/src/main/java/top/continew/starter/json/jackson/serializer/BaseEnumDeserializer.java +++ b/continew-starter-json/continew-starter-json-jackson/src/main/java/top/continew/starter/json/jackson/serializer/BaseEnumDeserializer.java @@ -16,6 +16,7 @@ package top.continew.starter.json.jackson.serializer; +import cn.hutool.core.convert.Convert; import cn.hutool.core.util.ClassUtil; import cn.hutool.core.util.ReflectUtil; import com.fasterxml.jackson.core.JsonParser; @@ -26,6 +27,7 @@ import top.continew.starter.core.enums.BaseEnum; import java.io.IOException; import java.lang.reflect.Field; +import java.util.Objects; /** * 枚举接口 BaseEnum 反序列化器 @@ -66,7 +68,7 @@ public class BaseEnumDeserializer extends JsonDeserializer { for (Object enumConstant : enumConstants) { if (ClassUtil.isAssignable(BaseEnum.class, fieldTypeClass)) { BaseEnum baseEnum = (BaseEnum)enumConstant; - if (baseEnum.getValue().equals(Integer.valueOf(value))) { + if (Objects.equals(Convert.toStr(baseEnum.getValue()), Convert.toStr(value))) { return baseEnum; } } diff --git a/continew-starter-web/src/main/java/top/continew/starter/web/autoconfigure/mvc/BaseEnumConverter.java b/continew-starter-web/src/main/java/top/continew/starter/web/autoconfigure/mvc/BaseEnumConverter.java index 69e9c785..7e2d3aea 100644 --- a/continew-starter-web/src/main/java/top/continew/starter/web/autoconfigure/mvc/BaseEnumConverter.java +++ b/continew-starter-web/src/main/java/top/continew/starter/web/autoconfigure/mvc/BaseEnumConverter.java @@ -18,7 +18,6 @@ package top.continew.starter.web.autoconfigure.mvc; import org.springframework.core.convert.converter.Converter; import top.continew.starter.core.enums.BaseEnum; -import top.continew.starter.core.util.validate.ValidationUtils; import java.util.HashMap; import java.util.Map; @@ -42,8 +41,6 @@ public class BaseEnumConverter implements Converter