Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么';t ArrayList类是否有newInstance()方法?_Java_Arraylist_Collections - Fatal编程技术网

Java 为什么';t ArrayList类是否有newInstance()方法?

Java 为什么';t ArrayList类是否有newInstance()方法?,java,arraylist,collections,Java,Arraylist,Collections,这只是一个理论问题,该方法不应该调用空构造函数并因此返回空列表吗?方法newInstance()属于名为class的类。Javadoc: 创建由该类对象表示的类的新实例。该类被实例化,就像被一个带有空参数列表的新表达式实例化一样 所以这两个是等价的: ArrayList a = new ArrayList(); ArrayList b = ArrayList.class.newInstance(); 您可以对每个类都这样做,但不建议这样做,因为您会失去编译时安全性(如果没有arg构造函数,它可

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

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

创建由该类对象表示的类的新实例。该类被实例化,就像被一个带有空参数列表的新表达式实例化一样

所以这两个是等价的:

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

您可以对每个类都这样做,但不建议这样做,因为您会失去编译时安全性(如果没有arg构造函数,它可能在运行时失败),并且无法跟踪使用情况。

为什么不是每个类型都有
newInstance
方法?你在这里寻找什么样的答案?