Я пытаюсь сравнить два массива, используя метод Object equals, который я переопределяю. Я должен указать параметр объекта в ListInterface, и я не могу понять, что происходит. Любая помощь будет оценена по достоинству.Метод переопределения объекта
public class AList<T extends Comparable> implements ListInterface <T> {
private T[] list;
private int length;
private static final int MAX_SIZE = 50;
public AList()
{
this(MAX_SIZE);
}
public AList(int maxSize)
{
length = 0;
list = (T[]) new AList[maxSize];
}
public boolean equals(Object other)
{
boolean results = true;
if (list.length == ((ListInterface<T>) other).getLength())
{
for(int i = 0; i < list.length; i++)
{
if(list[i].equals((ListInterface<T>)other[i]))
results = true;
}
}
return results;
}
Просьба предоставить более подробную информацию о том, что не так или просто, как вы застряли. Обратите внимание, что сначала я должен проверить значение null, а затем проверить ссылочное равенство перед проверкой другого материала. то есть 'if (other == null) возвращает false;' и 'if (other == this) возвращает true;' Тогда я бы проверил instanceof * before * casting. –
Является ли экземпляр AList предположительно равным экземпляру другого класса, который реализует ListInterface ? Это может нарушить инвариант .equals (Object o), что если a.equals (b) истинно, b.equals (a) также должно быть истинным. –
Mshnik