您的位置:首页 > 编程语言 > Java开发

Java中配置文件和反射一起结合的使用

2016-11-21 17:07 337 查看
在之前如果你没有对反射有个大概的了解,可以查看博客:

反射的使用详解

先把基础类罗列出来:

public class Loser {
public void action(){
System.out.println("破罐子破摔!!");
}
}


public class SuoLong {
public void action(){
System.out.println("受尽苦难而不厌,此乃修罗之路!!");
}
}


下面写的是配置文件的内容,配置文件我用的是xxx.txt文件

ClassName=reflect_property.SuoLong//很明显类的路径是全路径  包名.类名
MethodName=action


配置文件的格式就是上面这个,形如: key=value 的格式。

下面是测试类:

public class Test_Reflect {
public static void main(String[] args) throws Exception{
/*
* 通过配置文件类读取一定格式的配置文件。
*/
Properties properties=new Properties();
FileInputStream inputStream=new FileInputStream(new File("reflect_property.txt"));
properties.load(inputStream);

/*
* 读取成功后就读取里面的值
*/
String className=properties.getProperty("ClassName");
String methodName=properties.getProperty("MethodName");

/*
* 然后通过反射获取对象
*/
Class clazz=Class.forName(className);
Constructor constructor=clazz.getConstructor();
Object object=constructor.newInstance();

/*
* 通过当前class文件对象的  方法对象调用实例化对象中的方法
*/
Method method=clazz.getDeclaredMethod(methodName);
method.invoke(object);

}
}


因为会反射的人都会使用上面的,所以对那些会用的人来说就是水到渠成,不用多余的解释,有对反射不懂的,可以查看本文开始给出的链接内容。

值得注意的是:

例子:

import java.util.Properties;
import java.io.FileInputStream;
import java.io.IOException;

public class pro01{
public static void main(String args[]) throws IOException{
Properties pro=new Properties();

FileInputStream inputstream01=new FileInputStream("property.txt");
FileInputStream inputstream02=new FileInputStream("property02.txt");

pro.load(inputstream01);
System.out.println(pro.getProperty("userName"));

pro.load(inputstream02);
System.out.println(pro.getProperty("passWord"));

System.out.println("###############################################");

System.out.println(pro.getProperty("userName"));
System.out.println(pro.getProperty("passWord"));
}
}


当同一个配置对象加载多个配置文件之后,前面加载的配置文件不会被清空。

相同的属性会被覆盖!!!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: