このクラスは、equals(Object)
をオーバーライドしているのに hashCode
メソッドは java.lang.Object
から継承しています (同一性ハッシュコード (Java 仮想マシンによってオブジェクトに代入された任意の値) を返します)。
したがって、「等価なオブジェクトは等価なハッシュコードを保持する必要がある」という hashCode
メソッドの汎用規約に違反するかもしれません。
このクラスのインスタンスが HashMap/HashTable に決して代入されるだろうと思わないなら、推奨される hashCode
メソッドの実装は以下のようになります。
public int hashCode() { assert false : "hashCodeが呼び出されることは想定されていません。"; return 42; // 適当な値 }