Проверка ограничений - PullRequest
       22

Проверка ограничений

1 голос
/ 26 апреля 2010

Я использую 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();  
}

Я получаю сообщение об ошибке компиляции:

Несоответствие типов: невозможно преобразовать из списка >> до List >>

Чего мне не хватает?

1 Ответ

0 голосов
/ 24 мая 2011

Если вы не против работать с 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();  
}
...