Я пытаюсь написать метод равенства для MyClass, который определяет вложенный класс MyNested расширяет Comparable< /code> и метод getNested(), который возвращает экземпляр класса MyNested, который определен во время создания, и экземпляр MyClass.
Я не понимаю, как это сделать правильно.
Если да:
Код: Выделить всё
@Override
public boolean equals(Object obj) {
if (this == obj) return true;
if ((obj == null) || (this.getClass() != obj.getClass())) return false;
MyClass other = (MyClass) obj;
return this.getNested().compareTo(other.getNested()) == 0;
}
Код: Выделить всё
java: incompatible types: MyClass.MyNested cannot be converted to MyClass.MyNestedЕсли да:
Код: Выделить всё
@Override
public boolean equals(Object obj) {
if (this == obj) return true;
if ((obj == null) || (this.getClass() != obj.getClass())) return false;
MyClass other = (MyClass) obj;
return this.getNested().compareTo(other.getNested()) == 0;
}
Код: Выделить всё
Unchecked cast: 'java.lang.object' to 'MyClass'Код: Выделить всё
@SuppressWarnings("unchecked")Как правильно написать метод равенства в этом случае?
Как правильно написать метод равенства в этом случае?
Как правильно написать метод равенства?
п>
Подробнее здесь: https://stackoverflow.com/questions/785 ... ized-class