Показать сообщение отдельно
  #24 (permalink)  
Старый 03.07.2011, 17:07
Профессор
Отправить личное сообщение для tenshi Посмотреть профиль Найти все сообщения от tenshi
 
Регистрация: 20.03.2008
Сообщений: 1,183

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

первая - как правило бесполезна. редко когда нужно отличать объекты с одинаковым содержимым.
вторая же наоборот как правило и нужна, но по неведомой мне причине, реализуется через костыли типа a.equal(b)
по хорошему оператор == должен проверять именно идентичность данных, а не проверять через десяток эвристик: если оба объекты - сравниваем по имени, если один из них строка - сравниваем "строковые представления" (которые у разных объектов либо отражают содержимое, либо лишь принадлежность к классу), если один из них число - сравниваем "примитивные значения".
__________________
.ня
Ответить с цитированием