No Programming, No Life

プログラミング関連の話題や雑記

equalsメソッドの雛形

自作クラスのequalsメソッドを書くときはこの雛形を使うと便利。

public boolean equals(Object obj) {
    if (this == obj) {
        return true;
    }
    if (obj instanceof T) {
        T other = (T) obj;
        if (!this.xxx.equals(other.xxx)) {
            return false;
        }
        if (yyy != other.yyy) {
            return false;
        }
        //         :
        //         : (以下、必要なフィールド分繰り返し)
        //         :
        return true;
    }
    return false;
}
  • Tはそのクラス。
  • xxx, yyyはクラスのフィールド。
  • xxxはオブジェクトの場合の書き方。
  • yyyはプリミティブの場合の書き方。