创建一个file文件,名称为pro.properties
className=为Person所在的位置
methodName=使用的方法的名称
在Person类中自定义构造方法:
此类中,我还构造了一个无参构造sleep,sleep方法也可以使用
主代码类:
package cn.tedu;
import java.io.InputStream;
import java.lang.reflect.Method;
import java.util.Properties;
/**
* 需求:写一个"框架",不能改变该类的任何代码的前提下,可以帮我们创建任意类的对象,并且执行其中任意方法
* 实现:
* 1.配置文件
* 2.反射
* 步骤:
* 1.将需要创建的对象的全类名和需要执行的方法定义在配置文件中
* 2.在程序中加载读取配置文件
* 3.使用反射技术来加载类文件进内存
* 4.创建对象
* 5.执行方法
*
* @author Mr.GUO
*
*/
public class HomeWork {
public static void main(String[] args) throws Exception {
//1.创建加载配置文件
Properties pro=new Properties();
//2.获取当前类的类路径
ClassLoader classLoader=HomeWork.class.getClassLoader();
InputStream is=classLoader.getResourceAsStream("pro.properties");
//3.加载
pro.load(is);
//4.获取配置文件中的数据
String className=pro.getProperty("className");
String methodName=pro.getProperty("methodName");
//5.创建Class对象
Class<?> c1=Class.forName(className);
Person p=new Person();
//6.获取方法对象
Method method = c1.getMethod(methodName);
//7.执行方法
method.invoke(p);
}
}
运行结果:
总结:在高并发的课程中,利用反射,在不修改代码情况下,来体现代码的方便。但是需要配置一个pro.properties文件,这个方法更为便捷。
注:这是上课内容,自己感觉好用,记录笔记,如有错误,可以提出,让我能学更好的方法!!!