张孝祥老师讲反射的代码里
InputStream ips = new FileInputStream("config.properties");
Properties props = new Properties();
props.load(ips);
ips.close();//如果不close(),ips对象关联的系统资源未被释放。对象被JVM垃圾回收。
String className = props.getProperty("className");
Collection collections2 = (Collection)Class.forName(className).newInstance();//调空参数构造函数
//编译时java编译器只检测语法,如果没有(Collection)的类型声明会出现类型不兼容的错误。
Collection collections = new ArrayList();
因为知道接收的类型的Collection的子类,所以可以用Collection collections2 = (Collection)Class.forName(className).newInstance();
如果不知道时,那么用什么来接收通过字节码创建的对象呢? |
|