★★Java質問・相談スレッド174★★ [転載禁止]©5ch.io
■ このスレッドは過去ログ倉庫に格納されています
0669デフォルトの名無しさん
2015/09/17(木) 22:55:48.94ID:CfrPILTl>4.Stringや参照型を比較する際、==では、実体を指しているアドレスの値が同じか比較。 equasでは、実体の持つ情報(文字列やプロパティの中身)が同じかどうか比較。
equalメソッドは「そのクラス同士の比較において『等しい』と定義される条件を満たしているか」をチェックするメソッドな
必ずしも全てのフィールドが等しい必要はないし、Objectで用意されたequalsメソッドは参照値比較しかしてないので
自作クラスの場合はequalsメソッドをオーバーライドしない限り==と同じ効果しかない
反射律対称律推移律を満たして整合性を取れており、nullと比較した時にfalseを返すならどのようにも定義できる
その際はhashCodeのオーバーライドも忘れずに
■ このスレッドは過去ログ倉庫に格納されています