本帖最后由 万琪 于 2013-7-12 19:35 编辑
package com.itheima;
import java.io.*;
import java.util.*;
import java.lang.reflect.*;
public class Test7 {
/**
* 7、 已知一个类,定义如下:
package cn.itcast.heima;
public class DemoClass {
public void run()
{
System.out.println("welcome to heima!");
}
}
(1) 写一个Properties格式的配置文件,配置类的完整名称。
(2) 写一个程序,读取这个Properties配置文件,获得类的完整名称并加载这个类,用反射 的方式运行run方法。
*/
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
loadFile();
}
public static void loadFile() throws Exception {
InputStream in = Test7.class.getClassLoader().getResourceAsStream("prop.properties");
Properties prop = new Properties();//利用Properties类加载配置文件,它以键值对形式取出数据
prop.load(in);
in.close();
String className=prop.getProperty("class"); //设置了key,通过配置文件的key取出类的完整名称
Class c=Class.forName(className);
Object o = c.newInstance();
Method m = c.getMethod("run");
m.invoke(o);
}
}
class DemoClass{
public void run(){
System.out.println("welcome to heima!");
}
}
//Test7.properties
class=DemoClass;
|
|