Model.equals(Object)について

@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj == null) {
return false;
}
if (getClass() != obj.getClass()) {
return false;
}
モデルのクラス名 other = (モデルのクラス名) obj;
if (key == null) {
if (other.key != null) {
return false;
}
} else if (!key.equals(other.key)) {
return false;
}
return true;
}

これさぁ……

new モデルのクラス名().equals(new モデルのクラス名());

がtrueを返すんだよね。


ソースコードを読むに、多分一度DataStoreに格納しないとequalsは正常に機能しないんだと思う。
そりゃそうだよね。DataStoreから同じデータを取得して、Object.equals()で比較するとインスタンスが違うからfalseを返すって事になる。
それを回避する為にkeyを使って同じデータである事をチェックしてるんだ。