Java Lombok | equals()メソッドとhashCode()メソッドの自動生成 - @EqualsAndHashCode

@EqualsAndHashCode

@EqualsAndHashCodeアノテーションを宣言すると、equals()メソッドとhashCode()メソッドが自動生成される。

  • 比較は、すべてのフィールドがそれぞれ一致しているかどうかで確認する。
    • DDDの値オブジェクトで利用できそうだ。
package com.devkuma.tutorial.lombok;

import lombok.EqualsAndHashCode;

import java.util.Arrays;
import java.util.List;

@EqualsAndHashCode
public class EqualsAndHashCodeTutorial {

    private int id = 100;
    private String value = "devkuma";
    private List<String> list = Arrays.asList("araikuma", "kimkc");

    public static void main(String[] args) {
        EqualsAndHashCodeTutorial a = new EqualsAndHashCodeTutorial();
        EqualsAndHashCodeTutorial b = new EqualsAndHashCodeTutorial();

        System.out.println("a.hash = " + a.hashCode());
        System.out.println("b.hash = " + b.hashCode());
        System.out.println(a.equals(b));
    }

}

実行結果:

a.hash = -1469387943
b.hash = -1469387943
true