Home > AI > Backend > SpringBoot > Lombok >

@EqualsAndHashCode

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

Leave a Reply