1

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< Class< から変換できませんか? ConstraintValidator< capture#4-of ?,?>>> を List< Class< ? に拡張します。ConstraintValidator< ? を拡張します。注釈を拡張しますか?>>>

私は何が欠けていますか?

4

1 に答える 1

0

使用しても構わない場合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();  
}
于 2011-05-24T01:51:30.707 に答える