Сравнение ссылок в Java

Допустим, вы переопределили методы equals () и hashCode () объекта, чтобы они использовали поля объекта.

Как вы проверяете, относятся ли две ссылки к одному и тому же объекту, например, к методу equals ()?

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
13
0
15 455
5
Перейти к ответу Данный вопрос помечен как решенный

Ответы 5

Это то, что делает оператор ==.

Ответ принят как подходящий

Используйте == на объектах, чтобы выполнить сравнение идентичности.

Это то, что делает реализация equals() по умолчанию, но обычно заменяет equals(), чтобы он служил проверкой «эквивалентного содержимого».

Кроме того, большинство операций equals выполняют проверку this == obj, потому что, очевидно, если они ссылаются на один и тот же объект, тогда equals вернет true (при условии, что equals работает :))

MetroidFan2002 20.10.2008 08:19

По умолчанию equals () сравнивает два объекта с помощью оператора ==. Итак, если вы хотите, чтобы поведение по умолчанию использовалось ==, если вы хотите, чтобы ваше переопределенное поведение использовало equals ().

используйте оператор ==, потому что он сравнивается со ссылкой, а не с содержимым, если вы хотите сравнить с контентом, вы можете использовать метод equals ().

Если вам нужно сделать это для JUnit Assertion, вы также можете использовать Assert.assertSame()

Другие вопросы по теме