Esta dando o seguinte erro: java.lang.NullPointerException

5 respostas
M

…Boa Tarde!!!Gostaria de ajuda para resolver este problema, pois não sei onde esta o erro!!!
esta dando o seguinte erro no Compilador java.lang.NullPointerException… e não sei porque!!!

o codigo esta logo abaixo!!

public class teste1 {
          int[] posicao;
          
      
    public void teste(){
       
      try{
        for(int i=0;i<=20;i++){
        posicao[i]=(int) Math.random();
             
        
        }

        }catch(NullPointerException e){
         System.out.println(e);
         }


}
}

Desde já, muito obrigado!!

5 Respostas

mathiasnw

Inicialize a variavel.

int[] posicao = new int[20];
andreiribas

você deve inicializar o array antes de usá-lo:

public class teste1 {  
              int[] posicao;  
                
            
        public void teste(){  
             
          posicao = new int[20];  

          try{  
            for(int i=0;i<=20;i++){  
            posicao[i]=(int) Math.random();  
                   
              
            }  
      
            }catch(NullPointerException e){  
             System.out.println(e);  
             }  
      
      
    }  
    }
edilson_x

Tem um outro problema ai, se vc inicializar desta forma

int[] posicao = new int[20];

e fizer um for de

for(int i=0;i<=20;i++){ posicao[i]=(int) Math.random();

vai dar exception tb pois seu for vai iterar de 0 a 20 o que da um total de 21 posições e seu array tem somente 20 posições.

mude o for para

for(int i=0;i<20;i++){ posicao[i]=(int) Math.random();

Rummenigge

O método Math.random() sorteia um número entre 0 e 1. Ex: 0.8315597754352334

Faça assim:

for(int i=0;i<=20;i++){    
        int rnd = Math.round(Math.random() * 20);// De preferência, multiplique pela a propriedade [b]length[/b] do vetor.
        posicao[i]= rnd;
}
M

Ok, muito obrigado pela Ajuda!!!

vlw!!

Criado 25 de abril de 2011
Ultima resposta 6 de mai. de 2011
Respostas 5
Participantes 5