我有这个方法:
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);
}
}
答案 0 :(得分: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());
}
}
}
答案 1 :(得分:0)
使用String.equals()
进行值等式检查。
将其更改为:
if (u.getFirstName().equals(name)) {
==
基本上是对象引用相等性检查。
答案 2 :(得分:0)
String result = list.findById(firstname);
您的findById会返回一个用户,因此请将其更改为:
User result = list.findById(firstname);
因此,将您的下一行更改为:
outputText.setText(result.getFirstName());