Создание пользовательского класса, который использует массив
Я создал класс, и его цель - сравнить номера счетов с массивом номеров счетов и вызвать метод, чтобы определить, является ли число действительным. Я получаю сообщение об ошибке компилятора: Исключение в потоке "main" java.lang.NullPointerException в program07.AccountVal.(AccountVal.java:12) в program07.Program07.main(Program07.java:18)
Вот мой класс
package program07;
public class AccountVal
{
private String[] accountNums;
private String newAccount;
public AccountVal()
{
accountNums[0] = "5658845";
accountNums[1] = "8080152";
accountNums[2] = "1005231";
accountNums[3] = "4520125";
accountNums[4] = "4562555";
accountNums[5] = "6545231";
accountNums[6] = "7895122";
accountNums[7] = "5552012";
accountNums[8] = "3852085";
accountNums[9] = "8777541";
accountNums[10] = "5050552";
accountNums[11] = "7576651";
accountNums[12] = "8451277";
accountNums[13] = "7825877";
accountNums[14] = "7881200";
accountNums[15] = "1302850";
accountNums[16] = "1250255";
accountNums[17] = "4581002";
newAccount = "";
}
public void setAccountNums(String[] acc)
{
accountNums = acc;
}
public void setNewAccount(String newAcc)
{
newAccount = newAcc;
}
public String[] getAccountNums()
{
return accountNums;
}
public String getNewAccount()
{
return newAccount;
}
public boolean AccountValidation(String newAccount)
{
boolean test = false;
for (int i = 0; i < 18; i++)
{
if(newAccount == accountNums[i])
{
test = true;
}
}
return test;
}
}
Строка, на которую ссылается ошибка из программы, - это когда я объявляю объект:
AccountVal test = new AccountVal();
любая помощь будет принята с благодарностью. Благодарю вас!
2 ответа
NPE
происходит на этой линии
accountNums[0] = "5658845";
как String
массив accountNums
не был инициализирован. Вы могли бы сделать:
private String[] accountNums = new String[18];
В качестве альтернативы, вместо использования размера массива и использования индексов, вы можете объявить свой массив:
private String[] accountNums = { "5658845", "8080152", ... };
Вы никогда не инициализируете accountNums
массив. Вам нужно будет сказать:
private String[] accountNums = new String[18];