4
标题说明了一切。这真的是一个简单的问题。只是想了解这些东西是如何工作的。 这将是最好的选择返回一个不可变的空列表?做Collections.emptyList()还是ImmutableList.of()还是有更好的选择?Collections.emptyList()vs guava的ImmutableList.of()
标题说明了一切。这真的是一个简单的问题。只是想了解这些东西是如何工作的。 这将是最好的选择返回一个不可变的空列表?做Collections.emptyList()还是ImmutableList.of()还是有更好的选择?Collections.emptyList()vs guava的ImmutableList.of()
我会用Collections.emptyList()
因为
1)为什么要使用第三方库时,你已经具有相同的JDK
2)Collections.emptyList()
返回一个真正简单的私有类Collections.EMPTY_LIST
(见Collections.java在JDK )。
鉴于ImmutableList.of()
返回一个具有所有功能的Guava不可变列表,就像真的包含对象一样,用new Object[0]
对它进行初始化。
如果您只需要空列表,则不需要ImmutableList
功能。
你的第三点是错误的。在Guava 21中,'ImmutableList.of()'返回一个单独的空列表,它是'New RegularImmutableList
如果你的方法需要'ImmutableList',那么显然你需要Guava方法。否则,Guava团队自己会说,使用JDK功能优先于Guava(如果可用)。 –
我总是使用'ImmutableList.of'。它缩短了5个字符。 – ZhekaKozlov
@Zheka如果你使用静态导入,'empyList()'是非常简洁的,'()'是毫无意义的。 –