Duvida na insersao em array

ola pessoa estou inserindo no array conforme o codigo abaixo e esta me dando o seguinte errro:

Exception in thread “main” java.lang.NullPointerException

Read more: http://javafree.uol.com.br/topic-889258-INSERCAO.html#ixzz2LiHaGjH9

public void inserir(String non, int num ,String mor , int con){  
      
   int i =0;  
   while(i<la.length){  
      
                if(la[i].nome.equals("")){  //erro nesta linha
                la[i]= new Aluno(non, num ,mor, con);  
                System.out.printf("Regisdto efectuado com sucesso!!\n\n");  
                break;  
                 
                 }  
            else{  
                  i++;  
                 }      
    
                 }   
           if(i>=la.length){  
           System.out.printf("Nao existe espaco");  
           }  
           }  

Onde está a declaração do do array ?

Att.

Pelo que me parece vc está criando o verificando dados em um array que não foi declarado.
Seu código:

if(la[i].nome.equals("")){ //erro nesta linha la[i]= new Aluno(non, num ,mor, con);

Você tem que declarar o array antes de verificar alguma coisa:

la[i]= new Aluno(non, num ,mor, con); if(la[i].nome.equals("")){ .... }

Como vc esta adicionando dados pelo construtor, ou criar um construtor sem atributos ou modifica a forma de adicionar dados.

[quote=Enadrov]Pelo que me parece vc está criando o verificando dados em um array que não foi declarado.
Seu código:

if(la[i].nome.equals("")){ //erro nesta linha la[i]= new Aluno(non, num ,mor, con);

Você tem que declarar o array antes de verificar alguma coisa:

la[i]= new Aluno(non, num ,mor, con); if(la[i].nome.equals("")){ .... }

Como vc esta adicionando dados pelo construtor, ou criar um construtor sem atributos ou modifica a forma de adicionar dados.

[/quote]

Segue a dica do colega que você resolve…

Como foi dito você tem um NullPointerException porque está referenciando um array que não existe.
Antes do loop você declarou a variável i, declare também o array assim:

List<Aluno> la = new ArrayList<Aluno>();

Dica: Usando um ArrayList você não precisa percorrê-lo para procurar uma posição vazia pra inserir seu objeto.
Para adicionar o aluno use:

la.add(new Aluno(non, num ,mor, con));

Pode ficar assim:

public void inserir(String non, int num ,String mor , int con){    
   List<Aluno> la = new ArrayList<Aluno>();

   la.add(new Aluno(non, num ,mor, con));
   System.out.printf("Regisdto efectuado com sucesso!!\n\n");    
}    

Sugestão: De uma olhada na api de ArrayList em particular no método add.
http://docs.oracle.com/javase/7/docs/api/java/util/ArrayList.html

As api’s permitem abstração de alguns recursos encapsulados. ArrayList por exemplo insere seu ítem no final do array e sempre insere uma linha :slight_smile:
Não esqueça de editar o título do tópico e acrescentar [RESOLVIDO] no início quando solucionar o problema.

Variáveis não inicializadas (isso inclui elementos de um array) tem valor null e seus atributos e métodos portanto não podem ser acessados.

creio que a linha:

 if(la[i].nome.equals("")){  //erro nesta linha  

deveria ser na realidade:

 if(la[i] == null){  

ou caso queira pode inicializar no construtor todos os elementos do array.