我想知道为什么Map方法computeIfAbsent使用Function来计算值而不是供应商。
map.computeIfAbsent(key, key::toString); // Supplier<V>
map.computeIfAbsent(key, k -> k.toString()); // Function<K, V>
这里,键“key”和“k”完全相同的Object
不使用钥匙时特别奇怪。就像在多地图中一样:
// Have to do this :
multiMap.computeIfAbsent(key, __ -> new ArrayList<>()).add(value);
// instead of :
multiMap.computeIfAbsent(key, ArrayList::new).add(value);
为什么Java开发人员会这样做?