Java Null取消引用-使用HashMap.EntrySet()加强扫描

Java Null取消引用-使用HashMap.EntrySet()加强扫描,java,fortify,Java,Fortify,我正在使用entrySet从Hashmap检索键和值。代码工作正常,但强化扫描抱怨map dot entrySet的空解引用。下面是代码示例。请建议 我试图对entry.getKey和entry.getValue进行空检查 我还尝试了paramMap.entrySet上的空检查 我没有使用map.entrySet,而是使用forEach方法,该方法在内部负责对键和值进行迭代 paramMap.forEach((key, value) ->{ if (key.name().startsWit

我正在使用entrySet从Hashmap检索键和值。代码工作正常,但强化扫描抱怨map dot entrySet的空解引用。下面是代码示例。请建议

我试图对entry.getKey和entry.getValue进行空检查

我还尝试了paramMap.entrySet上的空检查


我没有使用map.entrySet,而是使用forEach方法,该方法在内部负责对键和值进行迭代

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

paramMap是如何分配的?它是否可以为null?映射是在具有某个静态值的静态方法中构造的。它正在从方法调用方进行检查,如果映射为null,则它不会到达此点。因为null检查在别处,静态代码分析很难确定paramMap在此上下文中不能为null。我尝试在方法本身中进行null检查,但仍然无法工作。我找到了解决此问题的方法。我没有使用map.entrySet,而是使用forEach方法,该方法在内部负责对键和值进行迭代。paramMap.forEachkey,value->{if key.name.startsWithxyz{if input.charAtvalue-1=='1'{list.addkey.name.substringinteractionPrefix.length;}}}我建议您花点时间格式化代码,以便将来的访问者更容易阅读。
paramMap.forEach((key, value) ->{
if (key.name().startsWith("xyz")){ 
if (input.charAt(value - 1) == '1'){ list.add(key.name().substring(interactionPrefix.length()));
}
});