本帖最后由 牛德阳 于 2016-1-4 23:56 编辑
/**
* 6、 已知一个类,定义如下:
package cn.itcast.heima;
public class DemoClass {
public void run()
{
System.out.println("welcome to heima!");
}
}
(1) 写一个Properties格式的配置文件,配置类的完整名称。
(2) 写一个程序,读取这个Properties配置文件,获得类的完整名称并加载这个类,用反射 的方式运行run方法。
* @牛德阳
* */
public class Test6 {
public static void main(String[] args) throws Exception {
Properties pro=new Properties();
File f=new File("test6.properties");
f.createNewFile();
System.out.println(f.getAbsoluteFile());
pro.setProperty("name","DemoClass");
BufferedWriter bw=new BufferedWriter(new FileWriter(f));
pro.store(bw, "");
BufferedReader br=new BufferedReader(new FileReader(f));
pro.load(br);
String n=pro.getProperty("name");
System.out.println(n);
Class democlass=Class.forName(n);//到这一行就抛异常
/*Exception in thread "main" java.lang.ClassNotFoundException: DemoClass
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:348)
at com.itheima.Test6.main(Test6.java:38)*/
Method m=democlass.getMethod("run",null);
m.invoke(democlass.newInstance());
bw.close();
br.close();
}
}
class DemoClass {
public void run()
{
System.out.println("welcome to heima!");
}
}
|