Разница между "тем же" и "экватором" в EasyMock

Есть ли существенная (или даже какая-либо) разница между "тем же" и "eq" в EasyMock?

Ответы

Ответ 1

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

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

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

Ответ 2

использует == и принимает значения .equals()