О как же часто, реализуя метод hashCode() и equals() мы писали кучу ненужного кода. Или отдавали этот процесс на усмотрение IDE…. Хватит! Пора писать красивый код и использовать плоды Apache Commons, а если быть точнее то пакета lang, а если ещё точнее, то классы HashCodeBuilder и EqualsBuilder.

И так рассмотрим простой класс Employee имеющий следующие поля:

А теперь посмотрим на метод equals() и hashCode() которые нам любезно с генерирует для этого класса Intelij IDEA:

Код выходит длинным, неудобным для чтения и понимания. Хорошо, что хоть IDE его сама генерирует и не надо его пистаь руками.

А теперь…. ТО ЧТО ИЗБАВИТ ВАС ОТ СТРАДАНИЙ! Только взгляните на этот код:

Это очень мощные классы для которые так же могут сильно упростить создание и специфических реализаций. К примеру, реализация метода hashCode нашего класса без учёта дневной дозы кокаинума:

Красиво и удобно! Подробнее про эти два класса можно почитать тут: HashCodeBuilder и EqualsBuilder.

Удачного кодинга.

Опубликовать в Google Plus
Опубликовать в LiveJournal
Опубликовать в Мой Мир
Опубликовать в Одноклассники
Опубликовать в Яндекс