diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/validate/enumd/EnumPattern.java b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/validate/enumd/EnumPattern.java index 35f7ecbe3..c31c7703c 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/validate/enumd/EnumPattern.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/validate/enumd/EnumPattern.java @@ -9,7 +9,7 @@ import static java.lang.annotation.ElementType.*; import static java.lang.annotation.RetentionPolicy.RUNTIME; /** - * 自定义枚举校验注解 + * 自定义枚举校验 * * @author 秋辞未寒 * @date 2024-12-09 @@ -27,9 +27,10 @@ public @interface EnumPattern { Class type() default Enum.class; /** - * 枚举类型校验值判断方法 + * 枚举类型校验值字段名称 + * TODO 需确保该字段实现了 getter 方法 */ - String method() default "getCode"; + String fieldName() default "code"; String message() default "输入值不在枚举范围内"; diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/validate/enumd/EnumPatternValidator.java b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/validate/enumd/EnumPatternValidator.java index af87225a6..0e748c0a4 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/validate/enumd/EnumPatternValidator.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/validate/enumd/EnumPatternValidator.java @@ -28,10 +28,10 @@ public class EnumPatternValidator implements ConstraintValidator type = annotation.type(); + String fieldName = annotation.fieldName(); Object[] enumConstants = type.getEnumConstants(); - Method method = ReflectUtils.getMethod(type, annotation.method()); for (Object e : enumConstants) { - if (value.equals(method.invoke(e))) { + if (value.equals(ReflectUtils.invokeGetter(e, fieldName))) { return true; } }