Estranho nullpointerException em java
-
10-07-2019 - |
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];
}
}
}
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