我在写框架时,并不知道用户以后会写什么类。
因为在写程序时无法知道要被调用的类名,所以在程序中无法直接new某个类的对象,所有要用反射方式来做。
例子:从配置文件动态生成类
import java.io.FileInputStream;
import java.io.InputStream;
import java.util.Collection;
import java.util.Properties;
public class Prop {
public static void main(String[] args)throws Exception
{
InputStream in = new FileInputStream("config.properties");
Properties properties = new Properties();
properties.load(in);
String className = (String)properties.get("className");
Collection collection = (Collection)Class.forName(className).newInstance();
collection.add("a");
collection.add("b");
collection.add("c");
System.out.println(collection);
}
}
config.properties
className=java.util.ArrayList