zoukankan      html  css  js  c++  java
  • Java反射常用API汇总

    “JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性”

    一、类对象的获取

    1.通过对象获取

    Object obj = new Object();
    obj.getClass();

    2.通过类名获取

    Object.class;

    3.通过类的路径名获取

    Class.forName("com.metadata.Student");

    二、类的实例化和构造函数

    获取到的class对象可以直接通过clazz.newInstance()方法实例化,但是需要目标类有默认无参构造函数,不然会抛出异常。

    在类没有默认无参构造函数,或者需要某个具体的构造函数来实例化的情况,需要通过Constructor类的newInstance()来完成。

    1.获取公有构造函数,不包括父类

    //Class
    public
    Constructor<?>[] getConstructors() public Constructor<T> getConstructor(Class<?>... parameterTypes)

    2.获取当前类构造函数,忽略修饰符

    //Class
    public Constructor<?>[] getDeclaredConstructors()
    public Constructor<T> getDeclaredConstructor(Class<?>... parameterTypes)

    构造函数调用

    //Constructor
    public T newInstance(Object... initargs)
    //忽略修饰符,强制调用
    public void setAccessible(boolean flag)

    三、类成员变量的获取

    1.获取公有变量,包括父类

    //Class
    public Field[] getFields()
    public Field getField(String name)

    2.获取当前类成员变量,忽略修饰符

    //Class
    public Field[] getDeclaredFields()
    public Field getDeclaredField(String name)

    成员变量赋值

    //Field
    //obj为实例对象
    public void set(Object obj,Object value)

    //忽略修饰符,强制调用
    public void setAccessible(boolean flag)

    四、类方法的获取

    1.获取公有方法,包括父类

    //Class
    public Method[] getMethods()
    public Method getMethod(String name,
                            Class<?>... parameterTypes)

    2.获取当前类方法,忽略修饰符

    //Class
    public Method[] getDeclaredMethods()
    public Method getDeclaredMethod(String name,
                                    Class<?>... parameterTypes)

    方法调用

    //Method
    //obj为类实例化对象,如果为静态方法obj为Null
    invoke(Object obj, Object... args)

    //忽略修饰符,强制调用
    public void setAccessible(boolean flag)
  • 相关阅读:
    Docker Swarm(十)Portainer 集群可视化管理
    Docker Swarm(九)资源限制
    Docker Swarm(八)滚动更新、回滚服务
    Docker Swarm(七)Scale 扩(缩)容服务
    Docker Swarm(六)Label 节点标签与服务约束
    Docker Swarm(五)Config 配置管理
    select样式调整
    在VS2008和VS2010中禁用Visual Assist X
    解决IE与FF 中 input focus 光标移动在最后的方案
    Office Web APP预览如何去掉顶部版权标志“Microsoft Office Web Apps”
  • 原文地址:https://www.cnblogs.com/wanshiming/p/9180606.html
Copyright © 2011-2022 走看看