Как стать автором
Обновить

SingleRecyclerAdapter плюс ViewBinding или зачем я написал библиотеку для списков

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров1.5K
Всего голосов 1: ↑0 и ↓1-1
Комментарии4

Комментарии 4

В interface BindingClass лучше сразу добавить override equals(item:Any) и override hashCode(item:Any), в дата классах они автоматом подхватятся, а если будет обычный класс, интерфейс заставит реализовать.

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

Ответил в корневом комментарии.

Спасибо за предложение. Пока что не вижу потребности в добавление здесь и сейчас этих методов, кроме как напоминалки об добавление ключевого слова data к классу. Скорее всего, в следующей версии добавлю equals.

Насчёт hashCode, в ArrayMap хешируется ключ, а ключом у нас выступает KClass, уникальность хеша которого не зависит от data class.

И equals не обязательно добавлять, ведь можно использовать методы, которые уже есть в BindingClass, например, прямой аналог функцияareContentsTheSame (если не хотите использовать data class), которую можно переопределить и сравнить нужные параметры класса. Хотя напоминалка действительно удобная могла бы получиться с equals, чтобы выжать максимум из использования дефолтной реализации areContentsTheSame .

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории