Как правильно переопределить метод equals() в Java?
Ответ
Приведу пример, по которому все будет понятно, также не надо забывать, что при переопределении метода equals() необходимо переопределить метод hashCode(). Если метод equals() возвращает истину для двух объектов, то их хэш-код должен быть одинаковым. Обратное утверждение не верно. TestClass { private int id; public boolean equals(Object other) { if(!super.equals(other)) return false; if (this == other) return true; if (other == null) return false; if(this.getClass() != other.getClass()) return false; TestClass otherObj = (TestClass)other; return this.id == otherObj.id; } public int hashCode() { return 76+133*id; } }
Комментариев нет:
Отправить комментарий