代码如未显示,请按F5刷新本页面。
package demo35.reflect;
import java.io.FileInputStream;
import java.io.InputStream;
import java.util.Collection;
import java.util.Properties;
/**
* 一个简单的使用反射开发的框架,通过修改配置文件中类名称,框架会自动通过反射读取的这个类,并使用它。
* 本例中使用的是ArrayList和HashSet,他们使用的是共同的接口Collection
* @author mengfeiyang
*
*/
public class ReflectFrame {
public static void main(String[] args) throws Exception {
//加载配置文件
InputStream is = new FileInputStream("conf.properties");
Properties props = new Properties();
props.load(is);
//生成对象
String className = props.getProperty("className");
Collection collection = (Collection)Class.forName(className).newInstance();
System.out.println("当前测试类:"+className);
//构造3个测试对象
String str1 = new String("123");
String str2 = new String("321");
String str3 = new String("123");
//添加到集合中
collection.add(str1);
collection.add(str2);
collection.add(str3);
System.out.println(collection.size());
}
}
/*********************************************************/
以下是位于工程目录下的conf.properties文件内容:
#className = java.util.ArrayList
className = java.util.HashSet