Sor*_*ras 17 java collections java-9
作为List.of(...)或Collections.unmodifiableList()的一个特例- 指向空的和不可变列表的首选Java 9方式是什么?
继续写
Collections.emptyList();
Run Code Online (Sandbox Code Playgroud)
或切换到
List.of();
Run Code Online (Sandbox Code Playgroud)
chr*_*ke- 15
Collections.emptyList()不需要为每个调用创建一个新对象; 像在OpenJDK中一样,返回单例EMPTY_LIST对象是典型的.此外,更清楚的是,您打算表示一个空列表,而不是忘记填写占位符.
使用emptyList(); 它更快(达到Java目标级别1.9)并且更具可读性.
use*_*551 14
指向空且不可变列表的首选 Java 9 方式是什么?
差异相当微妙,因此“首选”取决于您想要实现的目标。一些行为差异:
List.ofcontains(null)调用时会抛出异常。emptyList()在 JDK 8 及更早版本上反序列化,但不能在List.of.就或表达您想要一个空列表而言,emptyList()可能看起来更好,但这只是一个临时约定。如果开发人员开始使用List.of()(比 短得多Collections.emptyList()),那么它将成为一种已知和接受的方式,它只是新的。如果你考虑一下,我们使用的一些结构并不总是传达它们自己所做的事情,但我们已经习惯了它们。
所以没有严格的首选方式。如果行为无关紧要,请使用您想要的任何内容。
小智 14
从 JDK 11 开始,如果您查看源代码,您会发现List.of(), 使用一次性初始化的空列表,类似于Collections.emptyList(). 所以,我更喜欢使用,List.of()因为:
List.of(E... elements)(并且您应该List.of()),则可以用于空列表并享受统一的外观和感觉,并摆脱Collections API 中的大部分工厂方法。| 归档时间: |
|
| 查看次数: |
2948 次 |
| 最近记录: |