美文网首页技术栈
2019-03-18——Java反射 AnnotatedElem

2019-03-18——Java反射 AnnotatedElem

作者: 烟雨乱平生 | 来源:发表于2019-03-18 16:55 被阅读0次

    官方对该接口的描述

    表示当前在此VM中运行的程序的带注释的元素。这个接口允许反射性地读取注释。该接口中方法返回的所有注释都是不可变的,并且是可序列化的。调用者可以修改此接口方法返回的数组,而不影响返回给其他调用者的数组。

    子接口

    接口 说明
    AnnotatedArrayType 被注解的数组类型
    AnnotatedParameterizedType 被注解的参数化类型
    AnnotatedType 被注解的类型
    AnnotatedTypeVariable 被注解的类型变量
    AnnotatedWildcardType 被注解的通配类型
    GenericDeclaration 通用声明,用于表示声明型元素,如:类、方法、构造器等
    TypeVariable<D> 类型变量

    实现类

    说明
    AccessibleObject 可访问对象,如:方法、构造器、属性等
    Class
    Constructor 构造器
    Executable 可执行的,如构造器和方法
    Field 属性,类中属性的类型
    Method 方法,类中方法的类型
    Package
    Parameter 参数,主要指方法或函数的参数,其实是这些参数的类型

    声明的方法

    方法 说明
    getAnnotation(Class<T> annotationClass) 获取指定的注解,存在就返回该注解,否则返回Null
    getAnnotations() 返回此元素上存在的注解
    getAnnotationsByType(Class<T> annotationClass) 返回与该元素相关联的注解。如果没有与此元素相关联的注解,则返回值是长度为0的数组,这个方法与getAnnotation(Class)的区别在于,该方法检测其参数是否为可重复的注解类型(JLS 9.6),如果是,则尝试通过“looking through”容器注解来查找该类型的一个或多个注解。
    getDeclaredAnnotation(Class<T> annotationClass) 如果参数中所指定类型的注解是直接存在于当前元素上的,则返回对应的注解,否则将返回null。这个方法忽略了继承的注解。(如果没有直接在此元素上显示注释,则返回null。)
    getDeclaredAnnotations() 返回直接出现在这个元素上的注解。这种方法忽略了继承的注解。如果在此元素上没有直接存在的注解,则返回值是长度为0的数组。
    getDeclaredAnnotationsByType(Class<T> annotationClass) 如果参数中所指定类型的注解是直接存在或间接存在于当前元素上的,则返回对应的注解。这种方法忽略了继承的注释。如果没有直接或间接地存在于此元素上的指定注解,则返回值是长度为0的数组。这个方法和getDeclaredAnnotation(Class)的区别在于,这个方法检测它的参数是否为可重复的注释类型(JLS 9.6),如果是,则尝试通过“looking through”容器注解来查找该类型的一个或多个注解。
    isAnnotationPresent(Class<? extends Annotation> annotationClass) 查看是否存在某个指定的注解

    相关文章

      网友评论

        本文标题:2019-03-18——Java反射 AnnotatedElem

        本文链接:https://www.haomeiwen.com/subject/hfgvmqtx.html