Возможные ошибки при игнорировании некоторых полей в equals / hashCode ?

Если только некоторые из полей объекта представляют фактическое состояние, я полагаю, что их можно было бы проигнорировать при переопределении , равного и hashCode ...

У меня неприятное чувство по этому поводу хотя и хотел спросить:

  1. Это обычная практика?
  2. Есть ли потенциальные подводные камни с этим подходом?
  3. Есть ли какая-либо документация или рекомендации, когда дело доходит до игнорирования некоторых полей в равно ] / hashCode ?

В моей конкретной ситуации я исследую пространство состояний проблемы. Я хотел бы сохранить хэш-набор посещенных состояний, но я также рассматриваю возможность включения пути , который ведет к состоянию. Очевидно, что два состояния равны, хотя их можно найти разными путями.

6
задан aioobe 18 October 2011 в 18:57
поделиться