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()方法来查看(或必要时复制)集合作为ImmutableListImmutableList.copyOf(ImmutableCollection)将最终调用asList()该集合| 归档时间: |
|
| 查看次数: |
535 次 |
| 最近记录: |