请参考以下方法:
当我将代码更改为检索
public Properties getProperties()
{
try
{
Properties properties = new Properties();
loadProperties(properties);
for (Object key : properties.keySet())
{
properties.setProperty((String) key, convertPropertyValue(properties.getProperty((String) key)));
}
// Add Config API Keys/Values
IConfigurationManager configMgr = ConfigurationManager.getInstance();
Map<String, Setting> settings = configMgr.getSettings();
for (String key : settings.keySet()) {
properties.setProperty(key, settings.get(key).getValue());
}
return properties;
} catch (java.io.IOException ex)
{
return null;
}
}
当我将代码更改为检索
settings.entrySet()
而不是 settings.keySet()
时,会抛出以下错误:<<< error: incompatible types
[ERROR] for (String key : settings.entrySet()) >>>
我能理解,由于entrySet
返回的是键值对,而我们只需要键,所以会出现不兼容错误。
如何实现entrySet
来修复这段代码中的Sonar违规问题?
下面是用于设置键和值的setProperty()
方法:
public synchronized Object setProperty(String key, String value) {
return put(key, value);
}
Properties
对象吗?如果这个方法创建一个Map<String, String>
,对于你代码的其余部分来说是否可以呢? - Bohemian