簡體   English   中英

Java equals關於數組中null的方法

[英]Java equals method regarding null in array

在下面的代碼片段中,我被告知,在if語句中,this.item [i]和item的位置無法互換,因為item [i]數組中可能存在null。 我不明白為什么

告訴我的作品行得通:if(this.item [i] .equals(item))告訴我的作品行不通:if(item.equals(this.item [i]))

public boolean contains(Object item){
    for(int i = 0; i < this.numItems; i ++)
        if(this.item[i].equals(item))
            return true; 
        }
    return false; 
}

首先,您應該將item強制轉換為該class所在的類。 您正在比較原始對象。 因此,如果您的班級是Item.class

if (item instanceof Item)
{
    Item i = (Item)item; //where item is the object passed to the method.
}

同樣,如果item [i]為null,則不能在其上使用equals方法。 嘗試執行null檢查,然后使用equals如下所示:

if (item != null && item instanceof Item)
{
    for (int i = 0; i < item.length; i++)
    {
        Item castedItem = (Item)item;
        if (item[i] != null && item[i] instanceof Item && item[i].equals(castItem))
        {
            return true;
        }
        else
        {
            return false;
        }
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM