Я пишу приложение, в котором я использую массив внутри класса. Этот массив объявляется глобально за пределами области действия метода, так что все методы объектов будут иметь доступ к данным. Однако, когда я назначаю объект индексу, этот объект доступен только как часть массива в этом конкретном методе. Любой другой метод, пытающийся прочитать этот индекс массива, получает исключение nullpointer.Java-массивы и область применения
Некоторые иллюстрирующим мое использование:
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);
}
Является ли это из-за объема или это из-за меня путают переменные экземпляра и класса? Может быть, это совсем другое?
Ошибки я получаю исключение NullPointer в
String accountinfo=accounts[accountnr].number + "" + "" + accounts[accountnr].holder + accounts[accountnr].balance;
признателен за любую помощь!
Что вы ожидаете от происходящего и что на самом деле происходит? – Jivings
Это должно быть хорошо - пожалуйста, покажите короткую, но * полную * программу, которая демонстрирует проблему. (Вы также должны рассмотреть возможность использования camelCase для имен переменных.) –
какое значение имеет accountnr в getAccountinfo() –