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)) 

オペレーター==は、2 つのオブジェクト参照変数がオブジェクトのまったく同じインスタンスを参照しているかどうかをテストします。

このメソッド.equals()は、比較対象の 2 つのオブジェクトが等しいかどうかをテストします。

このように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 result = list.findById(firstname);

findById が User を返すので、次のように変更します。

User result = list.findById(firstname);

したがって、次の行を次のように変更します。

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