- 获取功能:+s代表获取多个
(1) 获取成员变量:
Field[ ] getFields() 获取所有public修饰的成员变量
Field getField(String name) 获取指定的public修饰的成员变量
Field[ ] getDeclareFields() 获取所有的成员变量,不考虑访问权限修饰符
Field getDeclareField(String name) 获取指定的成员变量,需setAccessable
操作
- 设置值:void set(Object obj,Object value)
- 获取值:get(Object obj)
- 忽略访问权限修饰符的安全检查:setAccessible(true)//暴力反射
(2) 获取构造方法
Constructor<?>[ ].getConstructors() 获取所有公共构造方法
Constructor<T>getConstructor(类<?>…paramaterTypes)获取指定的构造方法
Constructor<?>[ ].getDeclaredConstructors() 获取所有构造方法
Constructor<T>getDeclaredConstructor(类<?>…. paramaterTypes)获取所有构造方法,同时要创建对象并且要写setAccessable
操作
- 创建对象:T newInstance(Object…initargs)
- 如果使用空参数构造方法创建对象,操作可以简化:Class对象的newInstance
(3) 获取成员方法
Method[ ] getMethods() 获取全部公共方法
Method.getMethod(String name,类<?>…paramentTypes); 获取指定公共方法, 当方法代参数时要加参数
Method[ ] getDeclaredMethods() 获取所有成员方法
Method.geDeclaredMethod(); 获取指定成员方法,需要创建对象同时进行setAccess方法穿透
操作:执行方法
- Object invoke(Object obj,Object…args)
获取方法名称
(4) 获取类名
String getName()