需求:写一个框架,不能改变该类得任何代码得前提下
可以帮助我们创建对象,并执行其中方法。
实现:
1.配置文件
2.反射
步骤:
1.将需要创建的对象的全类名和需要执行的方法定义再配置文件中
2.在程序中加载读取配置文件
3.使用反射技术来加载类文件进内存
4.创建文件
5.执行方法
public static void main(String[] args) throws Exception {
/**
* 需求:写一个框架,不能改变该类得任何代码得前提下
* 可以帮助我们创建对象,并执行其中方法。
*
* 实现:
* 1.配置文件
* 2.反射
* 步骤:
* 1.将需要创建的对象的全类名和需要执行的方法定义再配置文件中
* 2.在程序中加载读取配置文件
* 3.使用反射技术来加载类文件进内存
* 4.创建文件
* 5.执行方法
*/
//1.
//1.1创建Properties
Properties pro =new Properties();
//1.2加载配置文件,转化为集合
//加载
ClassLoader classLoader = KJ.class.getClassLoader();
InputStream is = classLoader.getResourceAsStream("KJ_pzwj");
pro.load(is);
//2
//获取配置文件的数据
String className = pro.getProperty("className");
String methodName = pro.getProperty("methodName");
//3.
//加载该类进内存
Class cls = Class.forName(className);
//4.
//创建对象
Object obj = cls.newInstance();
//5.获取方法对象
Method method = cls.getMethod(methodName);
//6.执行方法
method.invoke(obj);
}
Proterpies
className=cn.itcast.demain.persion
methodName=eat