Какими свойствами обладает порождаемое equals() отношение эквивалентности?
• Рефлексивность: для любой ссылки на значение
• Симметричность: для любых ссылок на значения
• Транзитивность: для любых ссылок на значения
• Непротиворечивость: для любых ссылок на значения
Для любой ненулевой ссылки на значение
• Рефлексивность: для любой ссылки на значение
x, x.equals(x)
вернет true
;• Симметричность: для любых ссылок на значения
x
и y
, x.equals(y)
должно вернуть true
, тогда и только тогда, когда y.equals(x)
возвращает true
.• Транзитивность: для любых ссылок на значения
x
, y
и z
, если x.equals(y)
и y.equals(z)
возвращают true
, тогда и x.equals(z)
вернёт true
;• Непротиворечивость: для любых ссылок на значения
х
и у
, если несколько раз вызвать х.equals(y)
, постоянно будет возвращаться значение true
либо постоянно будет возвращаться значение false
при условии, что никакая информация, используемая при сравнении объектов, не поменялась.Для любой ненулевой ссылки на значение
х
выражение х.equals(null)
должно возвращать false
.