1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Estrutura de Dados: Lista

Boa noite, recebi um exercício para praticar, porém retornou um erro (Exception in thread "main" java.lang.NullPointerException), e não estou mais conseguindo avançar, pois necessito desse primeiro método para poder dar continuidade.

Eu não sei exatamente onde está o erro, ou oque está causando-o, mas sempre cai no catch, e retorna a mensagem, então é dentro do bloco try.. (não sei usar o debug).

Tenho três classes, a classe Lista, a classe Elemento e a classe Principal que contém o método main. Segue o código abaixo:


public class Lista {

    Elemento primeiro;
    Elemento aux;
    int contador;

    public Lista(){
        this.primeiro = null;
        this.aux = null;
        this.contador = 0;
    }

    void insereNaFrente(int valor){
        try{
            if(primeiro == null){
                this.primeiro.setValor(valor);
                this.primeiro.setProx(null);
                this.contador = contador + 1;
            }else{
                this.aux.setValor(this.primeiro.getValor());
                this.aux.setProx(this.primeiro.getProx());
                this.primeiro.setValor(valor);
                this.primeiro.setProx(aux);
                this.contador = contador + 1;
            }
        } catch (Exception error){
            System.out.println("Erro");
            error.getMessage();
        }
    }    
}

public class Elemento {

    int valor;
    Elemento prox;

    public Elemento(int valor){
        this.valor = valor;
        this.prox = null;
    }

    void setValor(int valor){
        this.valor = valor;
    }

    int getValor(){
        return this.valor; 
    }

    void setProx(Elemento prox){
        this.prox = prox;
    }
    Elemento getProx(){
        return this.prox;
    }
}

public class Principal {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Lista lista = new Lista();

        lista.insereNaFrente(1);
        lista.insereNaFrente(2);
        lista.insereNaFrente(3);
    }

}

Desde já, obrigada!

  • Na classe Lista, vc tem que instanciar um novo objeto do tipo Elemento, na linha 19, pois o objeto Elemento é null.

    Victor Augusto   07 de abr de 2015
  • É só um palpite, mas acho que o teu problema está no Elemento "aux", dentro da classe Lista, aparentemente você não está inicializando ele antes de usá-lo.

    else{
                    this.aux.setValor(this.primeiro.getValor());
                    this.aux.setProx(this.primeiro.getProx());
    Jubarius   07 de abr de 2015
  • Na classe Lista, mude a linha error.getMessage(); para error.printStackTrace(); para visualizar o erro. Sempre utilize error.printStackTrace(); num bloco try-catch em java.

    Victor Augusto   07 de abr de 2015
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

3 respostas

Não é a resposta que estava procurando? Procure outras perguntas com as tags java estrutura-de-dados ou faça a sua própria pergunta.