直接带注释对象的Java验证

直接带注释对象的Java验证,java,hibernate-validator,Java,Hibernate Validator,java验证的传统方法是用属性定义一个类,并用一个或多个验证约束注释(如@NotNull或@Future)进行注释 是否可以使用验证器约束注释直接验证对象,而无需指定类。例如: String a = ""; validator.validate(a, javax.validation.constraints.NotNull.class); 这显然不是Hibernate验证器设计的用例 您需要做的是根据约束和对象的类型创建一个ConstraintValidator,然后使用isValid()方法

java验证的传统方法是用属性定义一个类,并用一个或多个验证约束注释(如
@NotNull
@Future
)进行注释

是否可以使用验证器约束注释直接验证对象,而无需指定类。例如:

String a = "";
validator.validate(a, javax.validation.constraints.NotNull.class);

这显然不是Hibernate验证器设计的用例

您需要做的是根据约束和对象的类型创建一个
ConstraintValidator
,然后使用
isValid()
方法。入口点将是
ConstraintValidatorManager


它是一个内部类,因此即使在微版本中,它也会在没有警告的情况下更改,因此我不建议使用它。

我正在开发一个简单的EAV模块,它需要在运行时验证每个属性,而无需定义java类。是否有任何hibernate validator内部类能够为此调用?我能够通过java反射创建注释类实例,并能够在运行时设置所有注释属性。我编辑了答案以提供更多信息。但实际上,这不是你应该做的事情。注意,您可以使用
Validator\validateProperty()
或甚至
validateValue()验证bean的给定属性