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无法正常工作
答案 0 :(得分:1)
您将数组作为第二个参数传递给methodName
,然后检查该数组是equals
到model.getValueAt(i, j)
。无论model.getValueAt(i, j)
返回什么,它都不能equals
到该数组,因为数组使用equals
的默认实现(来自Object
类)来比较对象引用
答案 1 :(得分:0)
所以也许试试这个:
Object abc = { "products" };
不要将abc
作为数组。
但如果它必须是大图中的数组,则将[...]
放在方法中的每个value
引用上。例如,value[0]
。