職場で、「なんでequalsメソッドのオーバーライドをする必要があるのか?」ときかれたので、メモをつくっておこう。 必須じゃないのはそうなんだが、自分の経験では、equalsメソッドのオーバーライドをしないと、特に、DTOをListなどコレクション系のクラスで処理したいとき困ってしまう。 equalsメソッドの復習 Javaでは、クラスを書くと、デフォルトでjava.lang.Objectクラスを継承することになる。このObjectクラスには、equalsというメソッドがある。そういうわけで、Javaで書いたクラスはequalsメソッドを自動的に継承することになる。 equalsメソッドは、あるオブジェクトともうひとつべつのオブジェクトが等しいかどうかを判定する。Objectクラスのequalsの挙動は「参照が等しいかどうか」でオブジェクトが等しいかどうかを判断する。挙動を変えたい場合は、