空取消引用-使用HashMap.EntrySet()进行强化扫描

时间:2019-06-19 15:31:14

标签: java fortify

我正在使用entrySet()从Hashmap中检索键和值。代码工作正常,但强化扫描抱怨地图点entrySet的Null Dereference。下面是代码示例。请提出建议。

  1. 我试图将null检查放在entry.getKey和entry.getValue()上。

  2. 我也在paramMap.entrySet()上尝试了空检查

for (Entry<EnumType, Integer> entry : paramMap.entrySet()) {
    if (entry.getKey().name().startsWith("xyz")) {
        if (input.charAt(entry.getValue() - 1) == '1') {
            list.add(entry.getKey().name().substring(interactionPrefix.length()));
        }
    }
}

1 个答案:

答案 0 :(得分:0)

我使用了forEach方法,而不是使用map.entrySet,它在内部负责对键和值的迭代。

paramMap.forEach((key, value) ->{
if (key.name().startsWith("xyz")){ 
if (input.charAt(value - 1) == '1'){ list.add(key.name().substring(interactionPrefix.length()));
}
});