Seltsam Nullpointer in Java
-
10-07-2019 - |
Frage
Ich schreibe eine App für Java ME, und ich brauche eine Klasse für einige Daten halten (Telefonbuch). Wenn ich versuche, diese App zu starten, erhalte ich immer eine Nullpointer. Ich bin der Konstruktor einer Klasse aufrufen, und es weist Speicher für 10 Elemente, so sollte es nicht null sein. Was mache ich falsch?
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];
}
}
}
Lösung
Das Array von Datensätzen ist nicht null, aber jedes einzelne Element davon. Sie müssen jedes Element als auch instanziiert, jetzt ist es nur ein Array mit 10 null Einträgen.
Andere Tipps
phoneBook.records[0].Name = new String("abc");
sollte
phoneBook.records[0] = new Record();
phoneBook.records[0].Name= new String("abc");// or = "abc"
Ich bin nicht seriös genug noch (heh) Tom detaillierte Antwort zu bearbeiten, aber, um genau zu sein
phoneBook.records[0] = new something();
sollte
phoneBook.records[0] = new Record();
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow