JavaSE教程_进阶
package com.wkcto.chapter08.demo03;
import java.io.IOException;
import java.io.InputStream;
/**
* 定义一个业务逻辑类
* 需要使用Collection集合
* @author 蛙课网
*
*/
import java.util.Collection;
import java.util.Properties;
public class DataOP {
static Collection collection; //定义Collection引用
static{
/*
* 静态代码块, 在类加载内存后,在类使用前执行,
* 有时, 这个类需要依赖一些外部资源, 就可以在静态代码块中加载这些依赖资源
* 在本例中, 可以在静态代码块中从配置文件中读取Collection集合的实现类名
*/
try {
Properties properties = new Properties();
InputStream inStream = DataOP.class.getResourceAsStream("/com/wkcto/chapter08/demo03/config.properties");
properties.load(inStream);
String className = properties.getProperty("classname");
//通过反射技术 创建实例
Class<?> class1 = Class.forName(className);
collection = (Collection) class1.newInstance();
} catch (ClassNotFoundException | InstantiationException | IllegalAccessException | IOException e) {
e.printStackTrace();
}
}
//把数据添加到集合中
public void addData() {
collection.add("data11");
}
//显示数据
public void show() {
System.out.println( collection );
}
}
在当前包中添加config.properties配置文件,
classname=java.util.HashSet