反射类对象概念:所有的类,都存在一个类对象,这个类对象用于提供类本身的信息,比如有几种构造方法,有多少属性,有哪些普通方法获取类对象的方式有三种1.Class.forName2.对象名.class3.new 对象的构造方法().getClass在一个JVM中,一种类,只会有一个类对象存在,所以以上三种方式取出来的类对象,都是一样的与传统的通过new来获取对象的方式不同,反射机制,会先拿到对应类的“类对象“,然后通过类对象获取”构造器对象“再通过构造器对象创建一个对象try{String className="character.Hero";//类对象Class pClass =Class.forName(className);//构造器Contructor c=pClass.getConstructor();//通过构造器进行实例化Hero h2 =(Hero) c.newInstance();}反射机制 访问属性Hero h=new Hero();try{Filed f1=h.getClass().getDeclaredField("name");F1.set(h,"gydgyd")}getField和getDeclareFiled的区别这两的方法都是用于获取字段 getField只能获取公共的public 包括从父类继承来的字段getDeclareField可以获取到本类所有字段 包括私有的 但是 不用获取继承来的字段 这里只能获取到私有的 但不能访问私有字段的值 除非加上setAccessible(true)反射机制 调用方法通过反射机制调用一个对象的方法{Hero h =new Hero();//获取这个名字叫做setName,参数类型是String的方法Method m=h.getClass().getMethod("setName",String.class);//对h对象调用这个方法m.invoke(h,"gydgyd");}使用反射方式 首先准备一个配置文件 在test类中 首先去除类名称和方法名,然后通过反射去调用这个方法 当需要从调用第一个业务方法,切换到调用第二个业务方法的时候,不需要修改一行代码,也不需要重新编译,只需要修改配置文件,再进行运行。