Здравствуйте, netch80, Вы писали:
N>Боюсь, в таком варианте надо для надёжности вводить один класс с двумя функциональностями. Если не побьют за нарушение SRP.
Ну hashCode нужен гораздо реже, чем equals, поэтому, как мне кажется, лучше таки два.
N>>>Ну в плюсах есть такая возможность, но по умолчанию они используют таки стандартные сравнения.
vsb>>А что такое стандартное сравнение для MyClass? operator== вроде не генерится автоматом, т.е. для обычного класса не определены ни сравнение ни хеширование.
N>Тогда не скомпилируется. Стандартное — это то, что находится "естественным" поиском для a==b
Ну это по сути и есть интерфейс с утиной типизацией (или как там назвать по-умному такое). В Java утиной типизации нет, поэтому нужны явные интерфейсы, но идея такая же.