第一步:创建DemoClass类复制题目代码
package cn.itcast.fanshe;
public class DemoClass {
public void run()
{
System.out.println("welcome to heima!");
}
}
第二步:自己写个测试类
public class Demo {
public static void main(String[] args) throws Exception {
// 先创建一个properties用来设置配置文件;
Properties p=new Properties();
//设置键值对
p.setProperty("className", "cn.itcast.fanshe.DemoClass");
//设置键值对;
p.setProperty("methodName", "run");
//创建printStream打印流对象来建立hh.txt
PrintStream ps=new PrintStream("hh.txt");
//将p集合中的属性列表输出到ps中。
p.list(ps);
ps.close();
//创建输入流对象;
FileReader fr=new FileReader("hh.txt");
//将hh.txt中的属性列表读取到集合中;
p.load(fr);
//用getProperty方法通过键取值并String接收;
String className=p.getProperty("className");
String methodName=p.getProperty("methodName");
//获取字节码文件对象;
Class c=Class.forName(className);
//反射创建一个对象;
Constructor con=c.getDeclaredConstructor();
Object obj=con.newInstance();
//获取方法;
Method m=c.getDeclaredMethod(methodName);
//暴力反射 忽略java语言访问权限检查;
m.setAccessible(true);
//调用invoke方法;
m.invoke(obj);
}
} |