Java 为什么getAnnotation不接受类<;?扩展注释>;

Java 为什么getAnnotation不接受类<;?扩展注释>;,java,generics,annotations,javac,Java,Generics,Annotations,Javac,为什么follow行在Java中产生编译错误?或者如何编写正确的泛型语法 Class<? extends Annotation> annotation = annotations[i]; Class<? extends Annotation> anno = javaClass.getAnnotation(annotation); ClassgetAnnotation返回注释本身,而不是注释的类。我想你可以用: Class<? extends Annotation&

为什么follow行在Java中产生编译错误?或者如何编写正确的泛型语法

Class<? extends Annotation> annotation = annotations[i];
Class<? extends Annotation> anno = javaClass.getAnnotation(annotation);

Class
getAnnotation
返回注释本身,而不是注释的类。我想你可以用:

Class<? extends Annotation> annotationClass = annotations[i];
Annotation annotation = javaClass.getAnnotation(annotationClass);
Type mismatch: cannot convert from capture#5-of ? extends Annotation to Class<? extends Annotation>
incompatible types
    Class<? extends Annotation> anno = javaClass.getAnnotation(annotation);
                                                              ^
 required: Class<? extends Annotation>
 found:    CAP#1
 where CAP#1 is a fresh type-variable:
   CAP#1 extends Annotation from capture of ? extends Annotation
Class<? extends Annotation> annotationClass = annotations[i];
Annotation annotation = javaClass.getAnnotation(annotationClass);