gpt4 book ai didi

java - 在 Java 中将不可变实例分配给 Collection 的最佳方法

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

今天我在阅读一些 Hibernate 代码时遇到了一些有趣的事情。有一个名为 CollectionHelper 的类,它定义了以下常量 varibale:

public final class CollectionHelper {

public static final List EMPTY_LIST = Collections.unmodifiableList( new ArrayList(0 ) ;
public static final Collection EMPTY_COLLECTION = Collections.unmodifiableCollection(new ArrayList(0) );
public static final Map EMPTY_MAP = Collections.unmodifiableMap( new HashMap(0) );

他们使用这些常量来初始化具有不可变实例的集合。为什么他们不简单地使用 Collections.EMPTY_LIST 来初始化列表?使用以下方法有好处吗?

最佳答案

不,没有任何好处。对我来说唯一明显的区别是,此方法保证返回与使用 Collections.emptyList() 创建的任何 List 不同的 EMPTY_LIST,而Collections.emptyList() 的实现可能会也可能不会返回相同的 List 实例。我更倾向于同意 @WizardOfOdds 的评论,他们根本不了解这些 API 函数。

关于java - 在 Java 中将不可变实例分配给 Collection 的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2753860/

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