案例: 需求,写一个框架,可以帮我们创建任意类的对象,并且执行其中的任意方法
- 实现
- 1.配置文件
- 2.反射
步骤:
1。将需要创建的对象的全类名称和需要执行的方法,定义在配置文件中
2. 在程序中加载读取配置文件,
3. 使用反射技术加载类文件进行内存
4. 创建对象
5. 执行方法
1.编写配置文件
代码演示
public class ReflectTest {
public static void main(String[] args) throws IOException, ClassNotFoundException, IllegalAccessException, InstantiationException, NoSuchMethodException, InvocationTargetException {
//创建任意类的对象,可以执行任意方法
//加载配置文件,创建Properties对象
Properties properties = new Properties();
//加载配置文件转换为一个集合
//需要一个类加载器
ClassLoader classLoader = ReflectTest.class.getClassLoader();
InputStream is = classLoader.getResourceAsStream("pro.properties");
properties.load(is);
//
String className = properties.getProperty("className");
String method = properties.getProperty("method");
//加载该类进内存
Class<?> cls = Class.forName(className);
//创建对象
Object obj = cls.newInstance();
//获取方法对象
Method method1 = cls.getMethod(method);
//执行方法
method1.invoke(obj);
}
}