Pergunta

Estou escrevendo um aplicativo para Java Me e preciso de uma aula para manter alguns dados (agenda telefônica). Quando estou tentando lançar este aplicativo, estou sempre recebendo uma NullPointerException. Estou chamando o construtor de uma classe e aloca memória para 10 elementos, por isso não deve ser nulo. O que estou fazendo errado?

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];
        }
    }
}
Foi útil?

Solução

A variedade de registros não é nula, mas cada elemento individual é. Você também precisa instanciar cada elemento, agora é apenas uma matriz com 10 entradas nulas.

Outras dicas

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

deveria estar

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

Ainda não sou respeitável o suficiente (heh) para editar a resposta detalhada de Tom, mas, para ser preciso

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

deveria estar

phoneBook.records[0] = new Record();
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top