A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 醒醒 初级黑马   /  2019-4-17 00:27  /  555 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

反射

获得类的Class对象

- 类的class的属性
- 对象的getClass()
- 利用Class.forName(全路径)

利用反射获得构造函数对象

- 获得单个指定参数列表的公共构造函数对象:getConstructor(Class<?> ... t)
- 获得单个指定参数列表的构造函数对象:getDeclaredConstructor(Class<?> ... t)
  -> 得到Constructord对象
  ->利用上面得到Constructord对象创建指定类型的对象:
     con.newInstance(Object ...)
  ->如果是私有构造方法需要取消权限的检查
  con.setAccessible(true)

利用反射操作成员变量(前提需要依赖对象 obj)

- 获得指定名称的单个公共的成员变量:getFiled(String name);
- 获得指定名称的单个成员变量:getDeclaredFiled(String name);
- 给成员变量赋值:xxxFiled.set(obj,value) ->给某个对象的当前属性赋值为value
- 获得某个对象当前属性的值:xxxFiled.get(obj);
- 取消访问权限检查:xxxField.setAccessible(true);

利用反射执行成员方法(前提需要依赖对象 obj)

- 获得指定方法名称和参数列表的单个公共方法:getMethod(String name,Class<?> ... t);
- 获得指定名分名称和参数列表的单个方法:getDeclaredMethod(String name,Class<?> ... t);
- 调用方法: Object o = method.invoke(obj,参数列表)
- 设置访问检查:method.setAccessible(true);

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马