Странное исключение nullPointerException в Java
-
10-07-2019 - |
Вопрос
Я пишу приложение для Java ME, и мне нужен класс для хранения некоторых данных (телефонная книга). Когда я пытаюсь запустить это приложение, я всегда получаю исключение nullPointerException. Я вызываю конструктор класса, и он выделяет память для 10 элементов, поэтому он не должен быть нулевым. Что я делаю неправильно? Р>
import javax.microedition.lcdui.*;
import javax.microedition.midlet.MIDlet;
public class TinyMIDlet extends MIDlet implements CommandListener {
private PhoneBook phoneBook = new PhoneBook();
public void initPhoneBook() {
phoneBook.records[0].Name = new String("abc");
}
protected void startApp() {
initPhoneBook();
}
public class Record {
public String Name;
public String Number;
public String email;
public String Group;
}
public class PhoneBook {
public Record[] records;
PhoneBook() {
records = new Record[10];
}
}
}
Решение
Массив записей не является нулевым, но каждый его отдельный элемент. Вам также нужно создать экземпляр каждого элемента, сейчас это просто массив с 10 пустыми записями.
Другие советы
phoneBook.records[0].Name = new String("abc");
должно быть
phoneBook.records[0] = new Record();
phoneBook.records[0].Name= new String("abc");// or = "abc"
Я еще недостаточно авторитетен (хех), чтобы редактировать подробный ответ Тома, но, если быть точным
phoneBook.records[0] = new something();
должно быть
phoneBook.records[0] = new Record();
Не связан с StackOverflow