HashMap があり、次のように使用されます。
HashMap<SomeInterface, UniqueObject> m_map;
UniqueObject getUniqueObject(SomeInterface keyObject)
{
if (m_map.containsKey(keyObject))
{
return m_map.get(keyObject);
}
else
{
return makeUniqueObjectFor(keyObject);
}
}
私の問題は、m_map.containsKey(keyObject) の同じキーに一致する異なるクラスの複数のオブジェクトが表示されることです。
だからここに私の質問があります:
これは可能ですか?Map インターフェイスは、キーが null でないかどうかを比較するために equals() を使用すると述べています。どの SomeInterface クラスでも equals() をオーバーライドしていません。これは、 equals メソッドが間違っている可能性があることを意味しますか?
上記が当てはまる場合、実際には同じオブジェクトでありコピーではない場合、HashMap が equals() でのみ true を返すようにするにはどうすればよいですか? これは、if (object1 == object2) と言って可能ですか? Java 開発の早い段階で、それを避けるべきだと言われましたが、いつそれを使用すべきかわかりませんでした。
前もって感謝します。:)