• 反射&注释API


    反射获取构造器对象

    获取对象

    说明

    Constructor<?>[] getConstructors​()

    Public,返回所有构造器对象的数组

    Constructor<?>[] getDeclaredConstructors​()

    返回所有构造器对象的数组,存在就能拿到

    Constructor<T> getConstructor​

    (Class<?>... parameterTypes)

    Public,返回单个构造器对象

    Constructor<T> getDeclaredConstructor​(Class<?>... parameterTypes)

    返回单个构造器对象,存在就能拿到

    Constructor类中用于创建对象的方法

    方法

    说明

    T newInstance

    (Object... initargs)

    是public,根据指定的构造器创建对象

    public void  setAccessible

    (boolean flag)

    非public,设置为true,表示取消访问检查,进行暴力反射

    反射获取成员变量对象

    获取对象

    说明

    Field[] getFields()

    public

    返回所有成员变量对象的数组

    Field[] getDeclaredFields()

    返回所有成员变量对象的数组,存在就能拿到

    Field getField(String name)

    public

    返回单个成员变量对象

    Field getDeclaredField

    (String name)

    返回单个成员变量对象,存在就能拿到

    Field类中用于取值、赋值的方法

    方法

    说明

    void set

    (Object obj, Object value)

    赋值

    Object get(Object obj)

    获取值

    反射获取方法对象

    获取对象

    说明

    Method[] getMethods​()

    public,返回所有成员方法对象的数组

    Method[] getDeclaredMethods​()

    返回所有成员方法对象的数组,存在就能拿到

    Method getMethod​(String name,

    Class<?>... parameterTypes)

    public,返回单个成员方法对象

    Method getDeclaredMethod​

    (String name, Class<?>...

    parameterTypes)

    返回单个成员方法对象,存在就能拿到

    Method类中用于触发执行的方法

    方法

    说明

    Object invoke​(Object obj,

    Object... args)

    参数一:用obj对象调用该方法

    参数二:调用方法的传递的参数(如果没有就不写)

    返回值:方法的返回值(如果没有就不写)

    注解的解析

    获取对象

    说明

    Annotation[]    getDeclaredAnnotations()

    获得当前对象上使用的所有注解,返回注解数组

    T getDeclaredAnnotation

    (Class<T> annotationClass)

    根据注解类型获得对应注解对象

    boolean isAnnotationPresent

    (Class<Annotation> annotationClass)

    判断当前对象是否使用了指定的注解,如果使用了则返回true,否则false

    元注释

    @Target

    中可使用的值定义在ElementType枚举类中,常用值如右

    TYPE  类,接口

    FIELD  成员变量

    METHOD  成员方法

    PARAMETER  方法参数

    CONSTRUCTOR  构造器

    LOCAL_VARIABLE  局部变量

    @Retention

    中可使用的值定义在RetentionPolicy枚举类中,常用值如下

    SOURCE  注解只作用在源码阶段,生成的字节码文件中不存在

    CLASS    注解作用在源码阶段,字节码文件阶段,运行阶段不存在,默认值

    RUNTIME 注解作用在源码阶段,字节码文件阶段,运行阶段(开发常用)

  • 相关阅读:
    ERROR: AddressSanitizer: heap-buffer-overflow on address 0x6020000000d4 at pc
    基于Redis自增实现全局ID生成器(详解)
    从行业角度看,数仓领域的未来是什么?
    【LeetCode】311d:字符串的前缀分数和
    Lumiprobe 聚乙二醇化和 PEG 接头丨碘-PEG3-酸研究
    makefile & dockerfile
    Maven下载及环境搭建
    TOUGH2系列建模方法及在CO2地质封存、水文地球化学、地热、地下水污染等领域中的技术
    小程序的基本语法和全局配置
    Java IO包之ByteArray和Filter的简介说明
  • 原文地址:https://blog.csdn.net/czdzz/article/details/125453344