gpt4 book ai didi

java - Guava :ImmutableList.of(E[]) 的最佳实践

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:09:47 29 4
gpt4 key购买 nike

我刚刚注意到 ImmutableList.of(E[])已弃用,取而代之的是 ImmutableList.copyOf(),原因很明显,如果在其他地方使用原始数组,则无法真正使列表不可变。

如果您有一个返回数组的方法,并且您知道该方法不保留对数组的引用,并且您的代码除了传递之外不保留对数组的引用,该怎么办它到 ImmutableList.of()?

我应该...

  • 继续使用 ImmutableList.of(E[])(这似乎是个坏主意,因为该方法将消失)
  • 使用 Collections.unmodifiableList(Arrays.asList())
  • 使用 ImmutableList.copyOf()——这似乎是不会出现性能/资源问题的最佳想法,否则就不需要复制。

最佳答案

ImmutableList.of(E[]) 不会也从来没有存储它直接给定的数组(如果存储了它就不是不可变的,这会破坏类的意义)。由于命名原因,它已被弃用。如果你看一下实现,它是:

public static <E> ImmutableList<E> of(E[] elements) {
return copyOf(elements);
}

所以我的建议是一般只使用 ImmutableList.copyOf()。如果你知道你只是包装一个数组供内部使用或类似的东西,请随意保存副本并使用 Arrays.asList 但我更喜欢 ImmutableList用于 API。

关于java - Guava :ImmutableList.of(E[]) 的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6777568/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com