gpt4 book ai didi

java - 检查 ConcurrentHashMap 的 computeIfAbsent 是否改变了什么

转载 作者:行者123 更新时间:2023-11-30 06:58:25 25 4
gpt4 key购买 nike

您怎么知道 ConcurrentHashMap 的函数 computeIfAbsent 必须调用给定的生成器方法(“mappingFunction”)?
从 Javadoc 我相信它会返回新值,如果生成了新值,如果存在则返回旧值。我可以从 lambda 生成器函数设置一个外部标志,但这会很尴尬......

最佳答案

您可以改用compute:

map.compute(key, (k, v) -> v == null ? /*absent*/ this::getValue : /*present*/ v);

并添加一些逻辑来检查调用了哪个分支。

关于java - 检查 ConcurrentHashMap 的 computeIfAbsent 是否改变了什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32719763/

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