Java自定义验证注解

标签 java spring-mvc annotations

    public class Student{
    @NotNull
    private Course course= null;

    @CustomValidation(enumCourse = course)
    private String details = null;
    }
}

如何将类(class)变量传递给 CustomValidation 注释?我收到一条错误消息,指出 course 必须是枚举常量表达式。

我也编写了一个自定义验证接口(interface)和 validator 。

最佳答案

注释属性在编译时必须保持不变。

你不能在那里使用变量。

这里的关键字是跨字段验证

您有两个选择:

  1. 在类级别创建注释。在那里您可以访问类的所有属性,并且验证应该很容易完成
  2. 或者在方法级别创建注释,返回验证所需的所有字段。

    @CustomAnnotations
    Pair<Course, String> getCourseAndDetailForValidation() {
       return Pair.of(course, details)
    }
    

    您可以更改返回类型以符合您的口味,它可能是列表、数组、包装对象...

关于Java自定义验证注解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50353044/

相关文章:

Java replaceAll 正则表达式错误

java - 通过更改 Activity 导致黑屏

java - Common Pojo - 基于父pojo的动态错误消息 - Spring验证

java - 如何将 @RolesAllowed 与 Keycloak 和 Java 一起使用?

java - 动态修改字段注解值

java - Spring Validator注释不起作用

java - 根据键类型中字段的相等性从 Java HashMap 中提取条目

java - 编码用户界面与拖放

java - 如何使 Spring 复选框默认选中?

java - 扫描所有 beans,就好像它们在 Spring 的当前包中一样?