反射
获得类的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);
|
|