Java Lombok | Automatically Generating equals() and hashCode() - @EqualsAndHashCode

@EqualsAndHashCode

If you declare the @EqualsAndHashCode annotation, the equals() and hashCode() methods are generated automatically.

  • Comparison is performed by checking whether all fields match.
    • This seems useful for value objects in 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));
    }

}

Execution result:

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