【发布时间】:2017-01-25 16:36:52
【问题描述】:
我正在使用 putIfAbsent 将值添加到 ConcurrentHashMap 如果它们尚未作为原子操作存在。
这一切看起来都很好,但我真的可以判断是否真的添加了一个新对象。
我最好的想法是检查 putIfAbsent 的返回值是否为空,只要我们从不将空值放入映射中(ConcurrentHashMap 无论如何都不允许),这看起来应该可以工作,但我想知道如果有什么我错过了。或者这是正确的做法?
【问题讨论】:
-
检查
putIfAbsent()的返回值是正确的方法。 -
@SeanBright 是的,这也是我得出的结论,但“return == null”似乎是一种奇怪的方式来检查操作是否已完成某事。