我想比較兩個數組使用Object重寫的方法。我應該把對象參數投到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;'然後我會在* cast之前檢查instanceof *。 – 2014-09-02 02:34:19
AList的一個實例應該可能等於實現ListInterface 的不同類的實例嗎?這可能會違反.equals(Object o)不變量,如果a.equals(b)爲true,則b.equals(a)也應該爲true。 –
Mshnik
2014-09-02 02:34:48