java代码在计算机中经历的三个阶段,反射的原理
package cn.itcast.junit.fanshe; import java.io.IOException; import java.io.InputStream; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.util.Properties; public class DemoTest { public static void main(String[] args) throws IOException, ClassNotFoundException, IllegalAccessException, InstantiationException, NoSuchMethodException, InvocationTargetException { //创建任意的类对象,可以执行任一方法 // 1.读取配置文件 // 1.1创建Properties对象(这个对象是集合中唯一的和IO流相关的集合对象) Properties pro = new Properties(); //1.2加载配置文件,要想找到配置文件,首先要的到类加载器对象 ClassLoader classLoader = DemoTest.class.getClassLoader(); //2.找到文件,读取到内存中 InputStream is = classLoader.getResourceAsStream("pro.properties"); //读取文件,获取文件中的配置信息 pro.load(is); String name = pro.getProperty("ClassName"); String method = pro.getProperty("Method"); //3.加载到内存中 Class obj = Class.forName(name); //4.创建对象 Object o = obj.getDeclaredConstructor().newInstance(); //5.获取方法 Method method1 = obj.getMethod(method); //6.调用执行 method1.invoke(o); } }