这是生成 NPE 的一段代码,如果这还不足以让您了解可能出现的问题,请告诉我。
我有一张以这种方式实例化的地图:
Map<Integer, Set<Long>> myMap = new HashMap<Integer, Set<Long>>();
我正在尝试执行以下操作:
long randomLong = methodReturnsRandomLong();
int randomInt = methodReturnsRandomInt();
if(myMap.isEmpty()) { // the map is empty at this point
myMap.put(randomInt, new HashSet<Long>());
myMap.get(randomInt).add(randomLong);
}
// Now I want to remove it
myMap.get(randomInt).remove(randomLong); // Here is what generates the NPE
我不明白是什么导致了 NPE。我的猜测是new HashSet<Long>()
在我的myMap.put()
方法中使用导致它。但我不完全确定。