• 反射&注释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 注解作用在源码阶段,字节码文件阶段,运行阶段(开发常用)

  • 相关阅读:
    Linux I2C tools调试工具
    Java 同步锁ReentrantLock与抽象同步队列AQS
    常用H标签的补充:html5
    【NOI模拟赛】防AK题(生成函数,单位根,Pollard-Rho)
    MMSegmentation训练自己的语义分割数据集
    【python数据分析基础】—对列操作:调整DataFrame的列顺序
    mysql千万数据快速插入-实战
    Java Swing医院就诊预约系统
    docker 安装nacos最新版本单机版
    基于JavaEE的数字迎新系统丨新生报到系统(Java+SSH)
  • 原文地址:https://blog.csdn.net/czdzz/article/details/125453344