use*_*753 0 java immutability guava defensive-copy
我有以下代码:
private static final ImmutableMultimap<String, String> namesToAddress;
public static List<String> getAddresses(String name){
return ImmutableList.copyOf(namesToAddress.get(name));
}
Run Code Online (Sandbox Code Playgroud)
我的问题是防御性copyOf()在这里是必要的,因为get()仍然返回一个不可变列表?
注意我正在使用Google Guava的ImmutableMultiimap.
谢谢.
几件事(大多数都在评论中,但作为答案):
ImmutableListMultimap
的类型namesToAddresses
,get()
将返回一个ImmutableList
; 无需打电话copyOf
或演员或其他任何东西ImmutableMultimap.get()
也会返回ImmutableCollection
; ImmutableCollection
有一个asList()
方法来查看(或必要时复制)集合作为ImmutableList
ImmutableList.copyOf(ImmutableCollection)
将最终调用asList()
该集合 归档时间: |
|
查看次数: |
535 次 |
最近记录: |