0

我有这个方法:

public User findById(String name) 
{
    for (User u : list) 
    {
        if (u.getFirstName() == name) 
        {
            return u;
        }
    }
    return null; // or empty User
}

我如何在我的窗口类中编写一个方法,以便我可以打印出我找到的用户?

这就是我得到的。(认为​​我很遥远)

public void findCustomer()
{
    String firstname = findCustomerField.getText();

    if(!firstname.equals(""))
    {
        String result = list.findById(firstname);
        outputText.setText(result);

    }

}
4

3 回答 3

1

不要==在比较中使用

if (u.getFirstName() == name) 

equal

if (u.getFirstName().equal(name)) 

运算符==测试以查看两个对象引用变量是否引用了完全相同的对象实例。

该方法.equals()测试以查看相互比较的两个对象是否相等

您还需要像这样更改您的 findCustomer 方法

public void findCustomer()
{
    String firstname = findCustomerField.getText();

    if(!"".equal(firstname))
    {
        User user = list.findById(firstname);
        if(user != null)
        {
            outputText.setText(user.getFirstName());
        }
    }
}
于 2013-04-07T14:56:48.017 回答
0

用于String.equals()相等检查。

将其更改为:

if (u.getFirstName().equals(name)) {

==基本上做对象引用相等性检查。

于 2013-04-07T14:57:33.063 回答
0
String result = list.findById(firstname);

您的 findById 返回一个用户,因此将其更改为:

User result = list.findById(firstname);

因此,将您的下一行更改为:

outputText.setText(result.getFirstName());
于 2013-04-07T15:05:21.217 回答