0

我正在表中搜索具有匹配名称的客户,如果找到,则我想返回该客户,否则返回 null。问题是我总是得到 null,我认为我的问题是内部 for 循环中的 if 。

公共类测试器{

    public Customer isCustomerInTable(Customer[][] table, String customerName) {
        for ( int r = 0; r < table.length; r++ ) {
            for ( int c = 0; c < table[r].length; c++ ) {
                if ( table[r][c].equals(customerName) ) {
                    return table[r][c];
                }
            }
        }
        return null;
    }
}

我的客户类别:

class Costumer {

    private String name;

    public Customer()  {
        name = "";
    }

    public void setCostumerName(String name) {
        this.name = name;
    }

    public String getCostumerName(){
        return name;
    }
}

有任何想法吗?谢谢

4

2 回答 2

6

if的条件应该是

if (table[r][c].getCostumerName().equals(customerName))

您需要比较names,但在您的情况下,您将Customer对象与String customerName.

于 2013-06-03T06:18:25.473 回答
1

您正在Customer使用 . 检查对象string。这就是原因。您应该执行以下操作

if ( table[r][c].getCostumerName().equals(customerName) ) {
    return table[r][c];
}
于 2013-06-03T06:18:55.537 回答