List.of() 或 Collections.emptyList()
List.of() or Collections.emptyList()
作为 的特例 - Java 9 指向 empty 和 immutable[ 的首选方式是什么? =23=] 列表?
继续写
Collections.emptyList();
或切换到
List.of();
Collections.emptyList()
不需要每次调用都创建一个新的对象;这很典型,as in OpenJDK,只是 return 单例 EMPTY_LIST
对象。此外,更清楚的是,您打算 表示 一个空列表,而不是忘记填写占位符。
使用emptyList()
;它既更快(达到 Java 目标级别 1.9)又更具可读性。
What is the preferred Java 9 way of pointing to an empty and immutable list?
差异相当微妙,因此“首选”取决于您想要实现的目标。一些行为差异:
List.of
将在 contains(null)
次调用时抛出异常。
- 您可以反序列化 JDK 8 及之前的
emptyList()
,但不能反序列化 List.of
。
在表达或表达您想要一个空列表时,emptyList()
可能看起来更好,但这只是一个临时约定。如果开发人员开始使用 List.of()
(比 Collections.emptyList()
短得多),那么它将成为一种已知并被接受的方式,它只是一种新方式。如果你仔细想想,我们使用的一些结构并不总是传达它们自己所做的事情,但我们已经习惯了它们。
所以没有严格首选的方式。如果行为无关紧要,请使用您想要的任何东西。
emptyList()
创建一个新的空列表实例仅一次
- 可读性没有区别:也许
List.of()
比 Collections.emptyList()
更短,但您可以使用像 import static java.util.Collections.emptyList;
这样的静态导入和然后只写 emptyList()
作为
继续写
Collections.emptyList();
或切换到
List.of();
Collections.emptyList()
不需要每次调用都创建一个新的对象;这很典型,as in OpenJDK,只是 return 单例 EMPTY_LIST
对象。此外,更清楚的是,您打算 表示 一个空列表,而不是忘记填写占位符。
使用emptyList()
;它既更快(达到 Java 目标级别 1.9)又更具可读性。
What is the preferred Java 9 way of pointing to an empty and immutable list?
差异相当微妙,因此“首选”取决于您想要实现的目标。一些行为差异:
List.of
将在contains(null)
次调用时抛出异常。- 您可以反序列化 JDK 8 及之前的
emptyList()
,但不能反序列化List.of
。
在表达或表达您想要一个空列表时,emptyList()
可能看起来更好,但这只是一个临时约定。如果开发人员开始使用 List.of()
(比 Collections.emptyList()
短得多),那么它将成为一种已知并被接受的方式,它只是一种新方式。如果你仔细想想,我们使用的一些结构并不总是传达它们自己所做的事情,但我们已经习惯了它们。
所以没有严格首选的方式。如果行为无关紧要,请使用您想要的任何东西。
emptyList()
创建一个新的空列表实例仅一次- 可读性没有区别:也许
List.of()
比Collections.emptyList()
更短,但您可以使用像import static java.util.Collections.emptyList;
这样的静态导入和然后只写emptyList()