对单个元素而不是Collections.singletonList使用不可变列表使用List.of

时间:2019-03-29 13:15:24

标签: java java-9

Java 9引入了工厂方法来使用List.of创建不可变列表。

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

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

1 个答案:

答案 0 :(得分:2)

首选使用工厂方法

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

因为,它们禁止使用null元素是其中的好处之一,而且List界面中的工厂方法很容易添加多个对象并创建不可变的列表

  

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

Collections.singletonList允许null值的地方

List<String> l = Collections.singletonList(null);
System.out.println(l);   //[null]