反射的简单案例

代码如下:

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

public class ReflectTest {
	
	public static void main(String[] args) throws Exception {
		
		//创建配置对象
		Properties pro = new Properties();
		//加载配置文件
		//获取文件路径(方式),获取类对象的类加载器
		ClassLoader clr = ReflectTest.class.getClassLoader();
		//获取字节流
		InputStream is = clr.getResourceAsStream("pro.properties");
		pro.load(is);
		
		//获取配置文件中定义的数据
		String className = pro.getProperty("className");
		String methodName = pro.getProperty("methodName");
		
		//加载该类进内存
		Class cls = Class.forName(className);
		Object o = cls.newInstance();
		//获取方法对象
		Method method = cls.getMethod(methodName);
		method.invoke(o);		
	}
}

在src中创建配置文件

className=
methodName=

将所需要运行的类名和方法名写入配置文件中就可以运行了。

上一篇:反射之实例化


下一篇:Java 代码审计 — 2. Reflection