簡體   English   中英

字符串等於對對象不起作用

[英]String equals not working on Object

    Object[] abc = { "products" };
    methodName(model2, abc);

我初始化了一個對象並調用了方法:

public int methodName(TableModel model, Object value) {
    for (int i = model.getRowCount()-1; i >= 0; --i) {
    int j = 0; //first column I need

        System.out.println("a "+model.getValueAt(i, j)); //a products
        //this case RowCount was 1 (tested with println) which also means for loop is only once executed

        if (model.getValueAt(i, j).equals(value)) {
            return i;
        }
    }

return -1;
}

它總是返回-1,盡管它應該返回i(0)

那么為什么.equals無法正常工作

您正在將一個數組作為第二個參數傳遞給methodName ,然后檢查該數組是否equals model.getValueAt(i, j) 無論model.getValueAt(i, j)返回什么,它都不能equals該數組,因為數組使用默認的equals實現(來自Object類),該實現對對象引用進行比較。

所以也許試試這個:

Object    abc = { "products" };

不要將abc為數組。

但是,如果它必須在大畫面的陣列,把[...]到每個value在該方法中參考。 例如, value[0]

暫無
暫無

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

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