使用List.of()作为具有单个元素的不可变列表,而不是Collections.singletonList()

问题描述 投票:0回答:1

Java 9 引入了工厂方法来使用 List.of() 方法创建

immutable
列表。

哪个更适合创建一个元素不可变的列表?

  • List<String> immutableList1 = List.of("one");
  • List<String> immutableList2 = Collections.singletonList("one");
java java-9
1个回答
6
投票

更喜欢使用工厂方法

List<String> immutableList1 = List.of("one");

因为它们不允许空元素是好处之一,而且

List
接口中的工厂方法可以方便地添加多个对象并创建不可变的List

他们不允许空元素。尝试使用 null 元素创建它们会导致 NullPointerException。

其中

Collections.singletonList
允许
null

List<String> l = Collections.singletonList(null);
System.out.println(l);   //[null]
© www.soinside.com 2019 - 2024. All rights reserved.