20230525 java.lang.reflect.AnnotatedElement

发布时间 2023-09-04 10:36:23作者: 流星<。)#)))≦

介绍

  • java.lang.reflect.AnnotatedElement
  • public interface AnnotatedElement
  • getAnnotations()getDeclaredAnnotations() 方法返回的注解数组中,注解的顺序是不确定的
  • Class , Constructor , Method 都实现了这个接口

API

  • isAnnotationPresent
    • 判断是否存在指定类型的注解

getAnnotation 系列:

  • getAnnotation
    • 返回指定类型的注解对象,如果没有则返回 null
  • getAnnotations
    • 返回存在的所有注解,包括从父类继承的
  • getAnnotationByType
    • 与 getAnnotation 类似,但如果存在多个相同类型的注解,则只返回其中一个
    • 此方法与 getAnnotation(Class) 之间的区别在于,此方法检测其参数是否为可重复注释类型(@Repeatable)

getDeclaredAnnotation 系列:

  • getDeclaredAnnotation
    • 返回直接存在的指定类型的注解,如果没有则返回null,不考虑其继承的注解
  • getDeclaredAnnotations
    • 返回直接存在的所有注解,不包括继承的注解
  • getDeclaredAnnotationsByType
    • 与 getDeclaredAnnotations 类似,但如果存在多个相同类型的注解,则只返回其中一个

代码示例

@Inherited

如果注解上标注了 @Inherited 元注解,父类标注了该注解,那么子类也会继承该注解,通过 java.lang.Class#getAnnotations 在子类上可以获取到该注解