反射框架
import java.io.IOException; import java.io.InputStream; import java.lang.reflect.Method; import java.util.Properties; import static java.lang.Class.forName; public class ReflectionTest { public static void main(String[] args) throws Exception { //1.加载配置文件 //1.1创建Peoperties对象 Properties pro=new Properties(); //1.2加载配置文件,转换为一个集合 //1.2.1获取class目录下的配置文件 ClassLoader classLoader=ReflectionTest.class.getClassLoader(); InputStream is=classLoader.getResourceAsStream("pro.properties"); pro.load(is); //2.获取配置文件中定义的数据 String className=pro.getProperty("className"); String methondName=pro.getProperty("methondName"); //3.加载该类进内存 Class cls=Class.forName(className); //4.创建对象 Object obj=cls.newInstance(); //5.获取方法对象 Method method=cls.getMethod(methondName); //6.执行方法 method.invoke(obj); } }
className=unit.Person
methondName=eat
public class Person { private String name; private int age; public void setAge(int age) { this.age = age; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public String getName() { return name; } public void eat(){ System.out.println("eat...."); } }