import java.io.FileReader;
import java.io.FileWriter;
import java.lang.reflect.Constructor;
import java.lang.reflect.Method;
import java.util.Properties;
需求:通过配置文件运行类中的方法
public class ReflectTest {
public static void main(String[] args) throws Exception {
/*
* 反射之前的做法
*/
// Student s = new Student();
// s.show();
// Teacher t = new Teacher();
// t.show();
// Worker w = new Worker();
// w.show();
//反射之后
//设置、获取配置文件信息
Properties prop = new Properties();
FileReader fr = new FileReader("part.txt");
prop.load(fr);
prop.setProperty("className", "反射练习.Worker");
FileWriter fw = new FileWriter("part.txt");
prop.store(fw, "info");
String className = prop.getProperty("className");
String methodName = prop.getProperty("methodName");
fr.close();
fw.close();
//--------------------------------
//获取字节码文件对象
Class c = Class.forName(className);
//获取构造方法对象
Constructor con = c.getConstructor();
//通过构造方法对象,创建对象(无参)
Object obj = con.newInstance();
//获取单个成员方法
Method m = c.getMethod(methodName);
m.invoke(obj);
}
}