2
я определил следующий класс:не может вывести тип-переменный (ы) при реализации обобщенного класса
public class AttributeVisitor extends SimpleAnnotationValueVisitor8<Object, Object> {
public AttributeVisitor() {
super();
}
public AttributeVisitor(Object defaultValue) {
super(defaultValue);
}
@Override
public Object visitEnumConstant(VariableElement c, Object attribute) {
return super.visitEnumConstant(c, attribute);
}
}
Я пытаюсь использовать его в следующем отрезал
for(Map.Entry<? extends ExecutableElement, ? extends AnnotationValue> mirrorValues: annotationMirror.getElementValues().entrySet()){
mirrorValues.getValue().accept(new AttributeVisitor());
}
На компиляция, я получаю следующую ошибку:
method accept in interface javax.lang.model.element.AnnotationValue cannot be applied to given types;
[ERROR] required: javax.lang.model.element.AnnotationValueVisitor<R,P>,P
[ERROR] found: com.cvent.analytics.validator.AttributeVisitor
[ERROR] reason: cannot infer type-variable(s) R,P
[ERROR] (actual and formal argument lists differ in length)
Любая идея, что здесь не верно?
Какой тип 'annotationMirror.getElementValues ()'? –
Его Карта расширяет ExecutableElement ,? extends AnnotationValue> Ссылка: https: //docs.oracle.com/javase/8/docs/api/javax/lang/model/element/AnnotationMirror.html#getElementValues-- –