Skip to content

Latest commit

 

History

History
33 lines (29 loc) · 879 Bytes

OverrideBothEqualsAndHashcode.md

File metadata and controls

33 lines (29 loc) · 879 Bytes

OverrideBothEqualsAndHashcode

Category: pmd
Rule Key: pmd:OverrideBothEqualsAndHashcode

⚠️ This rule is deprecated in favour of S1206.


Override both public boolean Object.equals(Object other), and public int Object.hashCode(), or override neither. Even if you are inheriting a hashCode() from a parent class, consider implementing hashCode and explicitly delegating to your superclass. Example :

// this is bad
public class Bar {
  public boolean equals(Object o) {
      // do some comparison
  }
}

// and so is this
public class Baz {
  public int hashCode() {
      // return some hash value
  }
}

// this is OK
public class Foo {
  public boolean equals(Object other) {
      // do some comparison
  }
  public int hashCode() {
      // return some hash value
  }
}