gpt4 book ai didi

java - 将不可变列表传递给 ImmutableList.copyOf()?

转载 作者:行者123 更新时间:2023-12-01 16:52:46 24 4
gpt4 key购买 nike

我有以下代码:

private static final ImmutableMultimap<String, String> namesToAddress;

public static List<String> getAddresses(String name){
return ImmutableList.copyOf(namesToAddress.get(name));
}

我的问题是这里的防御性 copyOf() 是否必要,因为 get() 无论如何都会返回一个不可变的列表?

请注意,我使用的是 Google Guava 的 ImmutableMultiimap。

谢谢。

最佳答案

有几件事(主要在评论中涵盖,但作为答案):

  • 如果您使用 ImmutableListMultimap 作为 namesToAddresses 的类型,get() 将返回一个 ImmutableList;不需要调用copyOf或cast或任何东西
  • 即使您不这样做,ImmutableMultimap.get() 也会返回一个 ImmutableCollectionImmutableCollection 有一个 asList() 方法,用于将集合作为 ImmutableList 进行查看(或根据需要进行复制)
  • 无论如何,调用 ImmutableList.copyOf(ImmutableCollection) 最终都会在集合上调用 asList()

关于java - 将不可变列表传递给 ImmutableList.copyOf()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36629836/

24 4 0