Search
Write a publication
Pull to refresh

Comments 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 .

Sign up to leave a comment.

Articles