With ambiguous constructor references used in java.util.Map#computeIfAbsent
function parameter, it becomes unclear what the code intends to do.
map.computeIfAbsent(someLong, AtomicLong::new).incrementAndGet()
Code of this form can seemingly look like it’s trying to make a counter,
creating the key if absent. Unfortunately the code is surprising, because it
will call the wrong AtomicLong
constructor. Instead, it will create the
counter initialized with the key value, which is probably not desired.
Suppress false positives by adding the suppression annotation @SuppressWarnings("ComputeIfAbsentAmbiguousReference")
to the enclosing element.