Я пишу приложение, в котором я использую массив в классе.Этот массив объявлен глобально вне области действия любого метода, так что все методы объектов смогут получить доступ к данным.Однако, когда я назначаю объект индексу, этот объект доступен только как часть массива в этом конкретном методе.Любой другой метод, пытающийся прочитать этот индекс массива, получает исключение nullpointerexception.
Некоторый код, иллюстрирующий мое использование:
Account[] accounts = new Account[8000];
public void addAccount() {
cli.printMessage("Welcome to the account add wizard.");
String holdername = cli.getInput(entername);
int accountnr = Integer.parseInt(cli.getInput(enternr));
BigDecimal accbalance = new BigDecimal(cli.getInput(enterinitialbalance));
accounts[accountnr] = new Account(holdername, accountnr, accbalance);
String accountinfo=accounts[accountnr].number + " " + " " + accounts[accountnr].holder + " " + accounts[accountnr].balance;
cli.printMessage(accountinfo);
}
Добавление учетной записи работает до конца, этого не происходит при запуске из одного экземпляра этого класса:
public void getAccountinfo() {
int accountnr = Integer.parseInt(cli.getInput(getinfo));
String accountinfo=accounts[accountnr].number + "" + "" + accounts[accountnr].holder + accounts[accountnr].balance;
cli.printMessage(accountinfo);
}
Это связано с областью действия или из-за того, что я путаю переменные экземпляра и класса?Может ли это быть что-то совершенно другое?
Ошибка, которую я получаю, является исключением нулевого указателя при
String accountinfo=accounts[accountnr].number + "" + "" + accounts[accountnr].holder + accounts[accountnr].balance;
Благодарен за любую помощь!