罕用办法
取得包名、类名
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(实例, 参数数据) ;//让指定的实例来执行该办法