2013-04-07 2 views
0

I've получил этот метод:находки элемент

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

Как я могу запрограммировать метод в моем классе окна, так что я могу распечатать пользователь i've найден?

Это то, что я получил. (Думаю, им поодаль)

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

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

    } 

} 
+1

Ну, кроме того, что вы не должны делать сравнения с помощью = =, но с использованием .equals() в первом примере кода, кажется, все в порядке. Так что здесь не работает? –

ответ

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()); 
     } 
    } 
} 
+0

Итак, я сделал это. В методе findCustomer() eclipse все еще говорит мне изменить результат String на результат User. Если я это сделаю, я не могу setText с результатом: -/ – user2248471

+0

Я отредактировал мой ответ с кодом для замены в методе findCustomer – TheEwook

+0

ahh! Большое спасибо! Теперь я попытаюсь изменить имя на идентификатор клиента. Вернитесь в короткое время с большим количеством проблем;) – user2248471

0

Использования String.equals() для значения проверки равенства ,

Изменить это:

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

== в основном делает проверку ссылка на объект равенства.

0
String result = list.findById(firstname); 

Ваш findById возвращает пользователя так изменить его на:

User result = list.findById(firstname); 

Следовательно изменить следующую строку в:

outputText.setText(result.getFirstName()); 
Смежные вопросы