[英]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.