I have seen lots of example of overriding equals method. But in every example, while fields comparison, why we don't pass parameter like this.firstName in Objects.equals(firstName, person.firstName)
, but just pass firstName
Why we don't write like Objects.equals(this.firstName, person.firstName)
public boolean equals(Object o) {
// self check
if (this == o)
return true;
// null check
if (o == null)
return false;
// type check and cast
if (getClass() != o.getClass())
return false;
Person person = (Person) o;
// field comparison
return Objects.equals(firstName, person.firstName)
&& Objects.equals(lastName, person.lastName);
}