Привет, Хабр! Когда речь заходит о сравнении объектов, все почему-то решают, что это элементарный вопрос: ну есть же == и есть .Equals(), в чём проблема? На практике — проблема порой вырастает в целое шапито. Сегодня поговорим о весьма противоречивой парочке. Почему иногда, написав var a =…
Java Challengers #4: Сравнение объектов с equals() и hashCode() В преддверии запуска нового потока по курсу "Разработчик Java" мы продолжаем перевод серии статей Java Challengers, предыдущие части которых можно прочитать по ссылкам ниже: Перегрузка методов в JVM Сравнение строк Полиформизм и наследование Поехали! В этой статье вы узнаете, как связаны между собой методы equals() и hashCode() и как они используются при сравнении объектов. Читать дальше →
В предыдущей публикации мы рассмотрели общие принципы реализации минимально необходимых доработок класса для возможности сравнения объектов класса по значению с помощью стандартной инфраструктуры платформы .NET. Эти доработки включают перекрытие методов Object.Equals(Object) и…
В предыдущей публикации мы получили вариант реализации сравнения объектов по значению для платформы .NET, на примере класса Person, включающий: перекрытие методов Object.GetHashCode(), Object.Equals(Object); реализацию интерфейса IEquatable (Of T); реализацию Type-specific статических метода Equals(Person, Person) и…