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源码,这样你想要的都有了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏