Java--反射与配置文件小练习

一、需求:通过加载配置文件,并利用反射运行配置文件中指定类的对应方法

二、具体实现:

现有一个Person类,如下:

public class Person {
	
	private String name;
	private int age;

	public Person() {
	}

	Person(String name, int age) {
		this.name = name;
		this.age = age;
	}

	public void sayHello() {
		System.out.println("name:"+this.name+"-->"+this.age);
	}
}

为了方便,此处使用class.txt文件来代替配置文件。

className = study01.Person
methodName = sayHello

测试如下:

public class Test {
	public static void main(String[] args) throws Exception {
		//创建配置文件实例
		Properties prop = new Properties();
		//加载配置文件
		FileInputStream is = new FileInputStream("src/study01/class.txt");
		prop.load(is);
		//加载需要运行的类名和方法名
		String className = prop.getProperty("className");
		String menthodName = prop.getProperty("methodName");
		//创建Class对象
		Class c = Class.forName(className);
		//获取构造方法
		Constructor con = c.getDeclaredConstructor(String.class, int.class);
		//创建实例
		Object obj = con.newInstance("跑调大叔", 20);
		//获取需要运行的Method对象
		Method m = c.getDeclaredMethod(menthodName);
		//运行方法
		m.invoke(obj);
	}
}

测试结果如下:

现在如果需要运行不同类以及不同类中的方法时,只需要更改配置文件中的键值对即可。

Java新手,若有错误,欢迎指正!

原文地址:https://www.cnblogs.com/Java-biao/p/12591045.html