我有以下私人收藏:
final private ConcurrentHashMap<Book,BookLog> booklogMap;我目前在构造函数中创建了一个副本,如下所示:
this.booklogMap = new ConcurrentHashMap<Book, BookLog>(booklogMap);这是在构造函数中创建防御性副本的正确方式吗?如果不是,如何正确地创建线程安全集合的防御性副本?
发布于 2016-02-12 02:05:48
this.booklogMap =新的ConcurrentHashMap(booklogMap);
这是一个复制构造函数。几乎所有标准的Collection和Map实现都有一个,这通常是克隆简单结构的最简单方法。只要Book和BookLog是不可变的,这就可以很好地工作。
https://stackoverflow.com/questions/35346335
复制相似问题