У меня есть класс в пакете, который я не могу изменить.Этот класс не переопределяет Object.equals (), и другая реализация equals действительно сделает мой код чище.
Я знаю, что не могу этого сделать:
MyClass extends OtherClass{
@Override
public boolean equals(MyClass that)
{
//compare members and other stuff here
}
}
OtherClass oc1 = new OtherClass();
OtherClass oc2 = new OtherClass();
oc1.equals(oc2); //false because of Object.equals
//I want to do something like the following
MyClass mc1 = (MyClass) oc1; //throws class cast exception
MyClass mc2 = (MyClass) oc2; //throws class cast exception
mc1.equals(mc2); //true
Что такоеправильный способ сделать это?
Я мог бы написать метод, подобный equals (OtherClass oc1, OtherClass oc2), но это менее полезно.Если я могу реализовать равные, я могу использовать такие вещи, как List.contains или Sets для управления моими данными и облегчения жизни.