我正在为Java ME编写一个应用程序,我需要一个用于保存一些数据的类(PhoneBook)。当我试图启动这个应用程序时,我总是得到一个nullPointerException。我正在调用类的构造函数,它为10个元素分配内存,所以它不应该为null。我究竟做错了什么?
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];
}
}
}
答案 0 :(得分:13)
记录数组不为null,但它的每个元素都是。您还需要实例化每个元素,现在它只是一个包含10个空条目的数组。
答案 1 :(得分:4)
phoneBook.records[0].Name = new String("abc");
应该是
phoneBook.records[0] = new Record();
phoneBook.records[0].Name= new String("abc");// or = "abc"
答案 2 :(得分:0)
我还没有足够的信誉来编辑Tom的详细答案,但是,确切地说
phoneBook.records[0] = new something();
应该是
phoneBook.records[0] = new Record();