gpt4 book ai didi

java - 使用双括号初始化连接列表

转载 作者:行者123 更新时间:2023-12-01 22:16:40 25 4
gpt4 key购买 nike

我想连接两个数组列表,如 the answer 中所示:

final List<String> l1 = Lists.newArrayList(...);
final List<String> l2 = Lists.newArrayList(...);
List<String> l = new ArrayList<String>() { { addAll(l1); addAll(l2); } };

有什么非风格原因我不应该这样使用它吗?

最佳答案

如果您已经在使用 Guava,您可以使用以下一行代码来完成此操作:

List<String> l = FluentIterable.from(l1).append(l2).copyInto(new ArrayList<String>());

我个人不喜欢双括号。这会产生新的类,只是为了以不同的方式初始化它。新类意味着更大的目标 jar 文件、JVM 存储类需要更多内存、JIT 编译器需要更大的继承表等。如果您到处使用这种方法,这可能会变得很重要。如果您将此ArrayList返回到另一个组件,并且您当前的组件不再使用(例如,您正在使用OSGi或其他模块系统),您可能最终会挂起ClassLoader 仅由该匿名类链接。另外,如果您关心序列化,则应该在这个新类中声明 serialVersionID 。即使您不关心,您也可能会收到有关此的警告。

关于java - 使用双括号初始化连接列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30845983/

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