罕用办法

取得包名、类名

clazz.getPackage().getName()//包名

clazz.getSimpleName()//类名

clazz.getName()//残缺类名

!!成员变量定义信息

getFields()//取得所有公开的成员变量,包含继承的变量

getDeclaredFields()//取得本类定义的成员变量,包含公有,不包含继承的变量

getField(变量名)

getDeclaredField(变量名)

!!构造方法定义信息

getConstructor(参数类型列表)//取得公开的构造方法

getConstructors()//取得所有公开的构造方法

getDeclaredConstructors()//取得所有构造方法,包含公有

getDeclaredConstructor(int.class, String.class)

办法定义信息

getMethods()//取得所有可见的办法,包含继承的办法

getMethod(办法名,参数类型列表)

getDeclaredMethods()//取得本类定义的办法,包含公有,不包含继承的办法

getDeclaredMethod(办法名, int.class, String.class)

反射新建实例

c.newInstance();//执行无参结构

c.newInstance(6, "abc");//执行有参结构

c.getConstructor(int.class, String.class); //执行含参结构,获取构造方法

反射调用成员变量

c.getDeclaredField(变量名); //获取变量

c.setAccessible(true); //使公有成员容许拜访

f.set(实例, 值); //为指定实例的变量赋值,动态变量,第一参数给 null

f.get(实例); //拜访指定实例的变量的值,动态变量,第一参数给 null

反射调用成员办法

获取办法

Method m = c.getDeclaredMethod(办法名, 参数类型列表);

m.setAccessible(true) ;//使公有办法容许被调用

m.invoke(实例, 参数数据) ;//让指定的实例来执行该办法