Java: 如何理解 <A extends Annotation>模板?

如下方法可以得到注解

public <A extends Annotation> A getAnnotation(Class<A> annotationClass) {
    Objects.requireNonNull(annotationClass);

    return (A) annotationData().annotations.get(annotationClass);
}

但是注解定义一般不写extends Annotation
是所有的注解都默认是extends Annotation的吗?

阅读 6.3k
2 个回答
注解本质上就是一个接口,它的实质定义为: interface SomeAnnotation extends Annotation。
这个 Annotation 接口位于 java/lang/annotation 包,它的注释中第一句话就是 The common interface extended by all annotation types.
-- 通过反射,动态修改注解的某个属性值

建议查Annotation源码,这样你想要的都有了

推荐问题
宣传栏