1. 获取功能:+s代表获取多个

(1)     获取成员变量:

Field[ ] getFields()  获取所有public修饰的成员变量

Field getField(String name)  获取指定的public修饰的成员变量

 

Field[ ] getDeclareFields()  获取所有的成员变量,不考虑访问权限修饰符

Field getDeclareField(String name) 获取指定的成员变量,需setAccessable

 

     操作

  1. 设置值:void set(Object obj,Object value)
  2. 获取值:get(Object obj)
  3. 忽略访问权限修饰符的安全检查:setAccessible(true)//暴力反射

       

     (2)   获取构造方法

          Constructor<?>[ ].getConstructors() 获取所有公共构造方法

          Constructor<T>getConstructor(类<?>…paramaterTypes)获取指定的构造方法

 

          Constructor<?>[ ].getDeclaredConstructors() 获取所有构造方法

Constructor<T>getDeclaredConstructor(类<?>…. paramaterTypes)获取所有构造方法,同时要创建对象并且要写setAccessable

 

操作

  1. 创建对象:T newInstance(Object…initargs)
  2. 如果使用空参数构造方法创建对象,操作可以简化:Class对象的newInstance

 

(3)    获取成员方法

    Method[ ] getMethods() 获取全部公共方法

       Method.getMethod(String name,类<?>…paramentTypes); 获取指定公共方法,  当方法代参数时要加参数

 

    Method[ ] getDeclaredMethods() 获取所有成员方法

      Method.geDeclaredMethod(); 获取指定成员方法,需要创建对象同时进行setAccess方法穿透

 

操作:执行方法

  1. Object invoke(Object obj,Object…args)

          获取方法名称

 

(4)    获取类名

      String getName()

posted on 2020-06-14 20:25  尧啊尧  阅读(133)  评论(0编辑  收藏  举报