0%

Java 注解(四):查看注解信息

1. 怎样查看注解信息

  • 利用反射机制在运行时进行查看和利用注解信息

2. 反射相关类中与注解有关的方法有

  • ClassFieldMethodConstructor 中都有如下方法
    • public Annotation[] getAnnotations():获取所有的注解
    • public Annotation[] getDeclaredAnnotations():获取所有本元素上直接声明的注解,忽略 inherited 来的
    • public <A extends Annotation> A getAnnotation(Class<A> annotationClass):获取指定类型的注解,没有就返回 null
    • public boolean isAnnotationPresent(Class<? extends Annotation> annotationClass):判断是否有指定类型的注解

3. 怎样理解 Annotation

  • Annotation 是一个接口,它表示注解。具体定义为

    1
    2
    3
    4
    5
    6
    7
    public interface Annotation {
    boolean equals(Object obj);
    int hashCode();
    String toString();
    //返回真正的注解类型
    Class<? extends Annotation> annotationType();
    }
  • 实际上,内部实现时,所有的注解类型都是扩展的 Annotation

  • 对于 MethodConstructor,它们都有方法参数,而参数也可以有注解,所以它们都有如下方法:public Annotation[][] getParameterAnnotation()。返回值是一个二维数组,每个参数对应一个一维数组

-------------------- 本文结束感谢您的阅读 --------------------