Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/355.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/1/list/4.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初始化列表_Java_List - Fatal编程技术网

为什么要用Java初始化列表

为什么要用Java初始化列表,java,list,Java,List,如果我使用下面的代码 List<String> listOfStrings=new ArrayList<>(); listOfStrings.add("first string"); List listofstring=new ArrayList(); 添加(“第一个字符串”); 或以下代码 List<String> listOfStrings; listOfStrings.add("first string"); 列表字符串; 添加(“第一个字符串”)

如果我使用下面的代码

List<String> listOfStrings=new ArrayList<>();
listOfStrings.add("first string");
List listofstring=new ArrayList();
添加(“第一个字符串”);
或以下代码

List<String> listOfStrings;
listOfStrings.add("first string");
列表字符串;
添加(“第一个字符串”);

要创建Java列表,两个代码都会成功编译,并在迭代列表时给出相同的输出。那么初始化列表的相关性是什么呢?如果
listOfStrings
是一个局部变量,那么第二个示例将无法编译:在使用变量之前,必须为变量指定一个值


如果
listofstring
是一个成员或静态变量,则第二个示例将生成
NullPointerException
,因为您在
null
引用上调用
add
方法。

在第一个示例中,您不是初始化列表,而是实例化一个类或创建一个新对象,即列表。在第二个示例中,您将收到一个运行时错误,因为变量listofstring为null

第二个不会编译,因为您没有明确地为
listOfStrings
赋值——假设它是一个局部变量。如果它是一个成员变量,你会得到一个
NullPointerException
,因为你没有改变它的默认值
null
。你必须初始化列表,正如所说的,第二个不会编译。
List
是一个接口,无论如何(你不能初始化为
new List()
)。没有初始化,您就没有给它任何实例。@Tgsmith61591“
newarraylist();