# 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).
You Want To Have Those Changes Done Automatically?
The automatic application of this rule is supported in the following jSparrow version:
# Properties
Property | Value |
---|---|
Rule ID | MapGetOrDefault |
First seen in jSparrow version | 3.5.0 |
Minimum Java version | 8 |
Remediation cost | 2 min |