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