码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2020-03-29 10:31:39      阅读:60      评论:0      收藏:0      [点我收藏+]

标签:加载   on()   new   mic   const   dna   ima   img   技术   

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

二、具体实现:

现有一个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新手,若有错误,欢迎指正!

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

标签:加载   on()   new   mic   const   dna   ima   img   技术   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!