Right okay so armed with that you know that any collection that implements just ConcurrentMap will inherit this behaviour, further to that I found in particular guava would return a different implementation depending on the passed on parameters:
ConcurrentMap map1 = new MapMaker().makeMap(); System.out.println(map1.getClass()); ConcurrentMap map2 = new MapMaker().weakKeys().makeMap(); System.out.println(map2.getClass()); .... class java.util.concurrent.ConcurrentHashMap class com.google.common.collect.MapMakerInternalMap
MapMakerInternalMap doesn't override computerIfAbsent therefore the behaviour of this function will be significantly different depending on the parameters to pass into the maker, something that might be apparent from the get go.
No comments:
Post a Comment