【发布时间】:2018-11-16 17:32:18
【问题描述】:
Java 验证的常规方式是定义一个具有属性的类,并使用一个或多个验证约束注解进行注解,例如@NotNull 或@Future。
是否可以在不指定类的情况下直接使用验证器约束注释来验证对象。例如:
String a = "";
validator.validate(a, javax.validation.constraints.NotNull.class);
【问题讨论】:
Java 验证的常规方式是定义一个具有属性的类,并使用一个或多个验证约束注解进行注解,例如@NotNull 或@Future。
是否可以在不指定类的情况下直接使用验证器约束注释来验证对象。例如:
String a = "";
validator.validate(a, javax.validation.constraints.NotNull.class);
【问题讨论】:
这显然不是 Hibernate Validator 设计的用例。
您需要做的是根据约束和对象类型创建一个ConstraintValidator,然后使用isValid() 方法。入口点是ConstraintValidatorManager。
它是一个内部类,因此它可能会在没有警告的情况下进行更改,即使在微型版本中也是如此,因此我不建议使用它。
【讨论】:
Validator#validateProperty() 甚至 Validator#validateValue() 验证 bean 的给定属性