利用反射和配置文件结合的方式,动态切换方法运行的案列

package com.itcast.reflect;

import java.io.InputStream;
import java.lang.reflect.Method;
import java.util.Properties;

/**
* @author newcityman
* @date 2019/8/8 - 23:07
* 框架类:利用反射和properties配置文件结合的方式
* 在不改变java代码的情况下,通过修改配置文件的方法,来改变运行方法的切换
*/
public class RefelectTest {
public static void main(String[] args) throws Exception {
// 1、可以创建任意的对象,执行任意的方法
// 1.1创建properties对象
Properties pro = new Properties();
// 1.2加载配置文件,转换为一个集合
// 1.2.1获取class目录下的配置文件
ClassLoader classLoader = RefelectTest.class.getClassLoader();
InputStream is = classLoader.getResourceAsStream("pro.properties");
pro.load(is);
// 2、获取配置文件中定义的数据
String className = pro.getProperty("className");
String methodName = pro.getProperty("methodName");
// 3、加载该类进内存
Class cls = Class.forName(className);
// 4、创建对象
Object obj = cls.newInstance();
// 5、获取对象
Method method = cls.getMethod(methodName);
method.invoke(obj);

}
}
原文地址:https://www.cnblogs.com/newcityboy/p/11324632.html