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];
        }
    }
}
War es hilfreich?

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
scroll top