Java Сравнение двух свойств по ссылкам на объекты

При переопределении свойства equals для одного из моих классов возможно ли реализовать его так? Рассматриваемые свойства, такие как идентификатор, могут быть String, boolean, Date, Set или LinkedHashSet

public boolean equals(Object obj)
{
    if (this == obj)
        return true;
    if (obj == null)
        return false;
    if (getClass() != obj.getClass())
        return false;

    if (!compareProperty(identifier, other.getIdentifier())) return false;
    //Continue for all properties
}

//Compares any two objects
private boolean compareProperty(Object sourceObject, Object testObject)
{
    if (sourceObject == null)
    {
        if (testObject != null)
            return false;
    }
    else if(!sourceObject.equals(testObject))
    {
        return false;
    }

    return true;
}

Почему или почему нет?

1 ответ

Решение

Это действительно то, что должно быть сделано.

Я бы не стал изобретать велосипед. Попробуйте использовать Objects.equals (в Java 7), Objects.equal (в Guava) или EqualsBuilder (в apache commons-lang).

Другие вопросы по тегам