Java.lang.NullPointerException

3 respostas
pedrofelipemm

Estava com o erro citado no titulo na linha 29, resolvi o problema adicionando a linha 26.
Mas não entendi o que esta ocorrendo ali, ja que eu ja tinha instanciado o objeto na linha 16.
Poderiam me explicar?

Obrigado

package mypkg;

import java.util.Scanner;

public class Main {

    public static void menu() {
        System.out.println("1- Cadastrar novo contato;"
                + "\n2- Pesquisar: "
                + "\n3- Ligar: "
                + "\n4- Excluir:"
                + "\n5- Sair");
    }

    public static void main(String[] args) {
        Agenda agenda[] = new Agenda[5];
        Scanner input = new Scanner(System.in);
        int op = 0;
        int cont = 0;

        do {
            menu();
            op = input.nextInt();
            switch (op) {
                case 1:
                    agenda[cont] = new Agenda();
                    input.nextLine();
                    System.out.println("Digite o nome do contato: ");
                    agenda[cont].setNome(input.nextLine());

3 Respostas

drigo.angelo

Não, na linha 16 voce instanciou o array, que ficou assim:
agenda { null, null, null, null, null } aí na hora que voce tenta fazer alguma coisa com algum objeto que está dentro do array da um npe :smiley:

Entendeu?
Espero ter ajudado
[]'s

pedrofelipemm

hmm entendi.
Entao por isso que quando tentei fazer sem ser array deu certo…
Grato.

drigo.angelo

Só pra completar, voce pode fazer algo assim:

Agenda agenda[] = new  Agenda[5];
for(int i = 0; i < agenda.lenght; i++){
    agenda[i] = new Agenda();
}

Assim o array fica com objetos do tipo agenda, em vez de posições ‘vazias’:
agenda --> {instancia de Agenda, instancia de Agenda, instancia de Agenda, instancia de Agenda, instancia de Agenda} :stuck_out_tongue:

Criado 28 de fevereiro de 2011
Ultima resposta 28 de fev. de 2011
Respostas 3
Participantes 2