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()
ことが原因です。しかし、私は完全にはわかりません。