为什么ArrayList类没有newInstance()方法?

时间:2015-02-26 16:23:33

标签: java arraylist collections

只是一个理论问题,该方法不应该调用空构造函数,从而返回一个空列表吗?

1 个答案:

答案 0 :(得分:2)

方法newInstance()属于名为Class的类。的Javadoc:

  

创建此Class对象表示的类的新实例。该类实例化为具有空参数列表的新表达式。

所以这两个是等价的:

ArrayList a = new ArrayList();
ArrayList b = ArrayList.class.newInstance();

您可以为每个类执行此操作,但不建议这样做,因为您失去了编译时安全性(如果没有no-arg构造函数,它可能在运行时失败)并且无法跟踪用法。