我正在使用javax.validation.Validator
和相关类进行基于注释的验证。
Configuration<?> configuration = Validation.byDefaultProvider().configure();
ValidatorFactory factory = configuration.buildValidatorFactory();
Validator validator = factory.getValidator();
Set<ConstraintViolation<ValidatableObject>> constraintViolations = validator.validate(o);
for (ConstraintViolation<ValidatableObject> value : constraintViolations) {
List< Class< ? extends ConstraintValidator< ? extends Annotation,?>>> list =
value.getConstraintDescriptor().getConstraintValidatorClasses();
}
我收到一个编译错误,指出:
Type mismatch: cannot convert from List< Class< ? extends ConstraintValidator< capture#4-of ?,?>>> to List< Class< ? extends ConstraintValidator< ? extends Annotation,?>>>
我错过了什么?
最佳答案
如果您不介意与 ConstraintValidator<?, ?>
合作(即您不需要 ConstraintValidator<? extends Annotation, ?>
),这应该有效:
Configuration<?> configuration = Validation.byDefaultProvider().configure();
ValidatorFactory factory = configuration.buildValidatorFactory();
Validator validator = factory.getValidator();
Set<ConstraintViolation<ValidatableObject>> constraintViolations = validator.validate(o);
for (ConstraintViolation<ValidatableObject> value : constraintViolations) {
List< Class< ? extends ConstraintValidator<?,?>>> list =
value.getConstraintDescriptor().getConstraintValidatorClasses();
}
关于java - 约束验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2711071/