Java / Object, Class and Package
How to implement equals method correctly?
Consider that you are overriding equals method for Employee Class having empId, firstName and lastName.
- Check for reference equality, if equal then return true.
- Check for null check on the object argument being passed, if null return false.
- Compare getClass methods, if different return false.
- Always compare numeric and identify fields first.
- Check for field's references first and then check for null and equality.
- Override hashcode method whenever you override equals method.
The above steps are illustrated in the below example.
@Override public boolean equals(Object o) { if (this == o) // check 1 return true; // null check if (o == null) return false; // type check and cast if (getClass() != o.getClass()) return false; Employee emp = (Employee) o; //numeric and identity fields first if (!Objects.equals(this.emplId, emp.emplId)) return false; // field comparison return Objects.equals(firstName, emp.firstName) && Objects.equals(lastName, emp.lastName); }
More Related questions...