public class Student{
@NotNull
private Course course= null;
@CustomValidation(enumCourse = course)
private String details = null;
}
}
如何将类(class)变量传递给 CustomValidation 注释?我收到一条错误消息,指出 course 必须是枚举常量表达式。
我也编写了一个自定义验证接口(interface)和 validator 。
最佳答案
注释属性在编译时必须保持不变。
你不能在那里使用变量。
这里的关键字是跨字段验证
。
您有两个选择:
- 在类级别创建注释。在那里您可以访问类的所有属性,并且验证应该很容易完成
或者在方法级别创建注释,返回验证所需的所有字段。
@CustomAnnotations Pair<Course, String> getCourseAndDetailForValidation() { return Pair.of(course, details) }
您可以更改返回类型以符合您的口味,它可能是列表、数组、包装对象...
关于Java自定义验证注解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50353044/