ここで明らかな何かが欠けている可能性があると思いますが、とにかくコードを見てみましょう。
public static class FreeMap extends TreeMap<String, Integer> {
@Override
public Integer put(String key, Integer value) {
out.println(super.toString());
out.println(super.getClass().getName()+" "+key+" : "+value);
int i = super.put(key, value);//line 227
assert this.size() == 1;
return i;
}
}
public static void main(String[] args) {
FreeMap fm = new FreeMap();
fm.put("A", 10);
}
これを実行すると、次のような出力が得られます。
{}
com.xxxxxxxxxxxxxxxxxxxxxxxx.Graph$FreeMap A : 10
Exception in thread "main" java.lang.NullPointerException
at com.xxxxxxxxxxxxxxxxxxxxxxxx.Graph$FreeMap.put(Graph.java:227)
at com.xxxxxxxxxxxxxxxxxxxxxxxx.Graph.main(Graph.java:212)
スーパーが TreeMap ではなく FreeMap を参照していることがわかります。それが StackOverflow Exception をスローしていれば、理解できたはずです。なぜ nullpointerexception なのですか?
前もって感謝します