以下のコードは、equals()メソッドとhashcode()メソッドをオーバーライドしています。ここgettersはequalsとhashcodeで使用できますか?
public boolean equals(Object obj)
{
if (obj == null)
return false;
if (!(obj instanceof Name))
return false;
Name name = (Name) obj;
return this.name.equals(name.name);
}
public int hashCode()
{
return name.hashCode();
}
私は2行の下に置き換えることができます。
return this.getName().equals(name.getName());
return getName().hashCode();
と
return this.name.equals(name.name);
return name.hashCode();
私の代わりにプロパティを使用しての意味私は直接等しいとhashCodeメソッドの内部ゲッターを使用することができますか?
ありがとうございます!
なぜですか?:) –
はい、問題はありません。 – MJM
はい。オブジェクトがコレクション内にあるときに変更できるセッターやフィールドは使用できません。 –