Просто помните, что .equals(...)
должен быть реализован классом, который вы пытаетесь сравнить. В противном случае, не так много смысла; версия метода для класса Object выполняет то же самое, что и операция сравнения: Объект # равно .
Единственный раз, когда вы действительно хотите использовать оператор сравнения для объектов, является Вы сравниваете Enums. Это происходит потому, что за один раз имеется только один экземпляр значения Enum. Например, с учетом перечисления
enum FooEnum {A, B, C}
У вас никогда не будет более одного экземпляра A
за один раз, и то же самое для B
и C
. Это означает, что вы можете написать такой метод:
public boolean compareFoos(FooEnum x, FooEnum y)
{
return (x == y);
}
И у вас не будет никаких проблем.