Used to compare two objects
Example:
EqualsAndHashCodeExample.java
import lombok.Data;
import lombok.EqualsAndHashCode;
@Data
@EqualsAndHashCode
public class EqualsAndHashCodeExample {
private transient int transientVar = 10;
private String name;
private double score;
@EqualsAndHashCode.Exclude private Shape shape = new Square(5, 10);
private String[] tags;
@EqualsAndHashCode.Exclude private int id;
public String getName() {
return this.name;
}
@EqualsAndHashCode(callSuper=true)
public static class Square extends Shape {
private final int width, height;
public Square(int width, int height) {
this.width = width;
this.height = height;
}
}
}
class Shape {
}
Put this code snippet in the main function of Spring Application file
EqualsAndHashCodeExample a = new EqualsAndHashCodeExample();
EqualsAndHashCodeExample b = new EqualsAndHashCodeExample();
System.out.println(a.equals(b));
// true
a.setId(10);
b.setId(20);
System.out.println(a.equals(b));
// true
// exclude attributes
a.setName("hello");
b.setName("world");
System.out.println(a.equals(b));
// false