Здравствуйте, visitor_pattern, Вы писали:
_>У меня в проекте нужно правильно реализовывать Equals/hashCode методы, знать откуда тебе передали тот или иной Map и как с ним работать.
Это просто жесть

. Спасибо за подтверждение моих худших предположений

. Знать откуда тебе какой Map передали в реальном приложении и помнить как с ним работать — это просто нет слов, если это хотя б средний проект — представляю как там внутри живется

. Так, к сведению, скажу уж политкорректно — чем меньше надо в проекте знать что откуда приходит и как с этим работать, тем лучше написан проект

. У меня бывший коллега как то в такую контору сдуру свалил (госсподи, хорошо хоть я туда не свалил, слишком много запросил тогда), где тоже код написан так, что надо всегда знать что откуда передали и как с этим работать. Так как если не знаешь — тронешь в одном месте, отвалится в другом, в голове держать черти сколько деталей постоянно надо, и это уже не исправить без полного переписывания — он свалил оттуда через полгода, вернулся на старое место и посчитал, что в рай попал.
Лично у меня в проекте переопределение equals и hashCode только в одном месте — в базовых либах. Если б я это все явно переопределял, при том, что требования меняются с точностью до наоборот, причем срочно, в последней момент — представляю что б было, сроки были б раз в 10 больше точно, да и человек понадобилось тоже на порядок больше.