Details
-
Improvement
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
None
Description
The class MBeanStatsMonitor exposes the static class DefaultHashMap, which is basically a wrapper of a simple java.util.Map that returns a default value (0) when the requested key doesn't exist.
public static class DefaultHashMap { // TODO: delete this class private Map<String, Number> internalMap = new HashMap<>(); public DefaultHashMap() {} public Number get(final String key) { return internalMap.get(key) != null ? internalMap.get(key) : 0; } public void put(final String key, final Number value) { internalMap.put(key, value); } public void clear() { internalMap.clear(); } /** * For testing only */ Map<String, Number> getInternalMap() { return this.internalMap; } }
The containing class, MBeanStatsMonitor, also has a method that prevents null values from being returned when accessing the Map, which is redundant:
public Number getStatistic(final String statName) { Number value = statsMap.get(statName); return value != null ? value : 0; }
The class DefaultHashMap should be eliminated, and the method getStatistic should be refactored to use Map.getOrDefault(Object key, V defaultValue) instead of executing the logic manually.