2014-12-07 2 views
1

действительно застрял на этом, поэтому любая помощь оценивается Я просто новичок в основном у меня есть 3 класса, называемых Account, Address & AccountCollection в AccountCollection мне нужно создать логический поиск, который будет печатать одну учетную запись номер учетной записи, использующий метод класса Account. Если это недопустимо, он должен вывести «Учетная запись с номером учетной записи: [accountNumber] не найден».поиск в массиве с boolean

код я до сих пор является

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

    } 
    return false; 

} 

, который, кажется, работает, пока я не положил в неправильном значении, то это дает мне исключения нулевого указателя 61 любая помощь будет блестящие благодаря

+4

Это означает, что объект в строке 61 является "null". Посмотрите на строку и проверьте, почему каждый из них будет «null». Без контекста невозможно узнать кого-либо еще. – khelwood

+0

Номер счета, вероятно, возвращает 'int' * (или так я предполагаю) * - Если это так, вы должны сравнивать через' == ', а не' .equals() '. Однако вы получаете «NPE» в строке 61, поэтому вам нужно показать нам эту линию, чтобы мы поняли, что происходит. – Juxhin

+0

hi номер учетной записи является строкой, а строка 61 является следующей выше, если (account.getAccountNumber(). Equals (accountNumber)) – chris

ответ

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

Try добавляющие

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; 

} 
+0

он может иметь нулевую учетную запись в середине списка. ваше решение не будет искать учетные записи после нулевой учетной записи. – hasan83

Смежные вопросы