gpt4 book ai didi

java - 在构造函数中创建防御副本的正确方法是什么

转载 作者:行者123 更新时间:2023-11-29 07:36:21 25 4
gpt4 key购买 nike

我有以下私有(private) Collection :

final private ConcurrentHashMap<Book,BookLog> booklogMap;

我目前在构造函数中像这样复制:

this.booklogMap = new ConcurrentHashMap<Book, BookLog>(booklogMap);

这是在构造函数中创建防御副本的正确方法吗?如果不是,您如何正确制作线程安全集合的防御性副本?

最佳答案

this.booklogMap = new ConcurrentHashMap(booklogMap);

这是一个复制构造函数。几乎所有标准的 Collection 和 Map 实现都有一个,它通常是克隆简单结构的最简单方法。只要 Book 和 BookLog 是不可变的,这就可以正常工作。

关于java - 在构造函数中创建防御副本的正确方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35346335/

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