用布尔值搜索数组

时间:2014-12-07 17:23:52

标签: java arrays boolean

真的坚持这一点所以任何帮助表示我只是一个初学者基本上我有3个班叫做Account,Address& AccountCollection中的AccountCollection我必须创建一个布尔搜索,它将使用Account类的方法在给定帐号的情况下打印单个帐户。如果这是无效的,则应输出“帐户号码为帐户:[accountNumber]未找到。”

我到目前为止的代码是

public boolean getAccount(String accountNumber)
{
    for (Account account : accounts)
    {
        if (account.getAccountNumber().equals(accountNumber))
        {
            account.printAccountDetails();
            System.out.println();
            return true;
        }

    }
    return false;

} 

这似乎工作,直到我输入错误的值然后它给我一个空指针异常61任何帮助将是非常好的谢谢

2 个答案:

答案 0 :(得分:0)

数组列表和类似结构接受添加空对象。

    ArrayList<String> asd = new ArrayList<>();
    asd.add(null);
    asd.get(0).substring(0); // it will crash here on calling substring() for null object.

您必须检查添加空帐户的位置。并在那里修复它,除非它要求接受一个空对象。

如果您接受帐户的空对象,请在搜索方法中执行以下操作,将空对象跳转到下一个对象。

public boolean getAccount(String accountNumber)
{
    for (Account account : accounts)
    {
        if(account != null)
        {
            if (account.getAccountNumber().equals(accountNumber))
            {
                account.printAccountDetails();
                System.out.println();
                return true;
            }
        }
    }
    return false;
} 

答案 1 :(得分:-1)

尝试添加

public boolean getAccount(String accountNumber)
{
    for (Account account : accounts)
    {
        if(account == null) {
            return false;
        }  
        if (account.getAccountNumber().equals(accountNumber))
        {
            account.printAccountDetails();
            System.out.println();
            return true;
        }

    }
    return false;

}