Wednesday, 10 January 2024

equals vs == comparison

 // import static org.junit.jupiter.api.Assertions.assertEquals;

// import org.junit.jupiter.api.Test;

class Main {

  public static void main(String[] args) {
    CustomClass obj1 = new CustomClass(10);
    CustomClass obj2 = null;

    // Using equals() for custom class objects
    boolean equalsResult = obj1.equals(obj2);
    System.out.println("Using equals() for CustomClass: " + equalsResult);

    // Using == for reference comparison
    boolean doubleEqualsResult = (obj1 == obj2);
    System.out.println("Using == for CustomClass: " + doubleEqualsResult);
  }
}

class CustomClass {
  private Integer value;

  public CustomClass(Integer value) {
    this.value = value;
  }

  @Override
  public boolean equals(Object obj) {
    System.out.println("-----" + this.getClass());
    //System.out.println("------" + obj.getClass());
    if (this == obj)
      return true;
    if (obj == null || getClass() != obj.getClass())
      return false;
    CustomClass that = (CustomClass) obj;
    return value == that.value;
  }
}

No comments:

Post a Comment