Use of 'Properties' object as a 'Hashtable'
Reports calls to the following methods on java.util.Properties
objects:
put()
putIfAbsent()
putAll()
get()
For historical reasons, java.util.Properties
inherits from java.util.Hashtable
, but using these methods is discouraged to prevent pollution of properties with values of types other than String
.
Calls to java.util.Properties.putAll()
won't get reported when both the key and the value parameters in the map are of the String
type. Such a call is safe and no better alternative exists.
Example:
Object f(Properties props) {
props.put("hello", "world");
props.putIfAbsent("hello", "world");
props.putAll(new HashMap<>());
return props.get("Hello");
}
After the quick-fix is applied:
Object f(Properties props) {
props.setProperty("hello", "world");
props.putIfAbsent("hello", "world");
props.putAll(new HashMap<>());
return props.getProperty("hello");
}
- By ID
Can be used to locate inspection in e.g. Qodana configuration files, where you can quickly enable or disable it, or adjust its settings.
UseOfPropertiesAsHashtable
Inspection Details | |
---|---|
By default bundled with: | |
Can be installed with plugin: | Java, 243.23126 |
Thanks for your feedback!