# Replace Map::get by Map::getOrDefault
# Description
Java 8 introduced Map::getOrDefault (opens new window) which offers the possibility to return a default value if the map does not contain a mapping for the given key.
This rule replaces the invocations of Map::get followed by a null-check with Map::getOrDefault.
# Benefits
Makes the code more readable, by using Java 8 extensions of Map interface.
# Tags
# Code Changes
Pre
String value = concurrentHashMap.get(key);
if(value == null) {
value = defaultValue;
}
Post
String value = concurrentHashMap.getOrDefault(key, defaultValue);
# Limitations
The rule applies only on map implementations that do not allow null values, namely:
Attributes(opens new window)ConcurrentHashMap(opens new window)ConcurrentSkipListMap(opens new window)Hashtable(opens new window)Properties(opens new window).
🛠️ Auto-refactor Available
You can auto-refactor this with jSparrow.
Drop this button to your Eclipse IDE workspace to install jSparrow for free:
Need help? Check out our installation guide.
# Properties
| Property | Value |
|---|---|
| Rule ID | MapGetOrDefault |
| First seen in jSparrow version | 3.5.0 |
| Minimum Java version | 8 |
| Remediation cost | 2 min |