Javaでequalsメソッドをどのように使用しますか? JUnitでは、2つの値が等しいと初期化されているかどうかを確認するためにテストしていますが、テストは失敗しています。渡されているオブジェクトが他のオブジェクトのinstanceofであることを確認しましたが、なぜ私のテストが失敗しているのか分かりません。Javaでの等価性のテスト
@Test
public void testEqualityOnBillSimple()
{
Date d1 = new Date(3,4,2020);
Money m1 = new Money(10);
Bill b1 = new Bill(m1, d1, "fred");
Bill b2 = new Bill(m1, d1, "fred");
assertTrue(b1.equals(b2));
}
public boolean equals (Object toCompare) {
try {
if (toCompare instanceof Bill) {
Bill that = (Bill) toCompare;
return this.amount.equals(that.amount) &&
this.dueDate.equals(that.dueDate) &&
this.paidDate.equals(that.paidDate) &&
this.originator.equals(that.originator);
}
} catch (Exception e) {
}
return false;
}
発信者は、請求先の誰かを示す文字列です。この場合、Fredです –
'equals()'メソッドと 'hashcode()'をオーバーライドしましたか? –
申し訳ありませんが、私はまだハッシュコードに精通していません –