可以通过修改配置文件来快速的达到访问不同类及其方法的目的;
获取Class类的对象:
1.Class.forName("全类名");
2.类名.class
3.对象.getClass();
Class类的对象中的成员变量属于Field对象;
Class类的对象中的构造方法属于Constructor对象;
获取构造方法(Constructor对象):
.getConstructors(); 获取公共构造方法
.getDeclaredConstructors() 获取所有构造方方法
.getConstructor(String.class,int.class); 获取符合类型的公共构造方法
.getDeclaredConstructor(String.class); 获取符合类型的所有构造方法
使用构造方法:
.newInstance("张三"); 使用获取的Constructor对象调用这个方法
1.如果构造方法私有,需要用.setAccessible(true);(被private修饰的成员,不能直接使用,如果用反制获取并使用,需要临时取消访问检查);
2.如果是空参构造,可以直接用Constructor对象的newInstance()方法;
获取Field对象:
获取对象值:
获取Method对象:
使用Method方法:
.invoke()方法
注:不论使用变量或者方法,都要先使用Constructor创建对象