Разница между «тем же» и «эквалайзером» в EasyMock - PullRequest
14 голосов
/ 11 июля 2011

Есть ли значительная (или даже какая-либо) разница между «одинаковыми» и «эквалайзерами» в EasyMock?

Ответы [ 2 ]

18 голосов
/ 11 июля 2011

то же использует == и равно использует .equals()

17 голосов
/ 11 июля 2011

same проверяет, являются ли оба объекта на самом деле одним и тем же экземпляром (равенство ссылок).eq вызывает equals и, следовательно, проверяет, имеют ли оба значения одинаковые значения (равенство значений).

Имейте в виду, что реализация equals по умолчанию использует == внутри, и поэтому eq будет делатьтак же, как same, если вы используете классы, которые не имеют правильного equals переопределения.

Но все же лучше заявить о своем намерении, используя same для равенства ссылок и eqдля равенства стоимости.Это также может помочь вам находить ошибки (то есть обнаруживать, что вы забыли переопределить equals).

...