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