Question

J'écris une application pour Java ME et j'ai besoin d'une classe pour stocker des données (PhoneBook). Lorsque j'essaie de lancer cette application, je reçois toujours une exception nullPointerException. J'appelle le constructeur d'une classe, et celle-ci alloue de la mémoire à 10 éléments, elle ne devrait donc pas être nulle. Qu'est-ce que je fais mal?

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];
        }
    }
}
Était-ce utile?

La solution

Le tableau d'enregistrements n'est pas nul, mais chaque élément individuel l'est. Vous devez également instancier chaque élément. À l’heure actuelle, il ne s’agit que d’un tableau contenant 10 entrées nulles.

Autres conseils

phoneBook.records[0].Name = new String("abc");  

devrait être

phoneBook.records[0] = new Record();
phoneBook.records[0].Name= new String("abc");// or  = "abc"

Je ne suis pas encore assez réputé (hé) pour modifier la réponse détaillée de Tom, mais, pour être précis

phoneBook.records[0] = new something();

devrait être

phoneBook.records[0] = new Record();
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top