Java lang NullPointerException - Dica

Veja nesta dica o porquê de tantas pessoas ao iniciar na área de desenvolvimento com Java se depararem com o tal erro NullPointerException e também como resolvê-lo sem muitos problemas.

Em linhas gerais, o NullPointerException é uma exceção lançada pelo Java quando um programa tenta acessar um objeto de memória que não foi instanciado (ou melhor, inicializado) até o momento de sua chamada. O que isso quer dizer? O objeto ainda está nulo, ele não tem um valor definido.

Causas para geração da exceção

Este tipo de exceção é detectado quando o programa tenta, em tempo de execução, realizar algo do tipo:

Erros comuns cometidos por iniciantes

Um erro comum é pensar que atribuir o inteiro 0 (zero) para uma variável é interpretado como nulo, o que não é verdade, pois 0 é um valor e sendo um valor ele estará sendo interpretado como tal. Um inteiro será realmente vazio quando ele não receber nenhum valor e neste caso será alocado um “pedaço” de memória que não conterá nada, será então, null.

Em java, tudo é na forma de classe. Desta forma, se você pretende usar qualquer de seus objetos, você sempre terá que executar duas coisas importantes.

A primeira delas é a declaração de suas variáveis e a segunda é a inicialização delas! Basicamente:

Declaração de variável: int a, int idade, float valor;

Com arrays é a mesma coisa.

Declaração: Produto p[] = new Produto[5]; Inicialização: p[0] = new Produto();

Um exemplo em código:

public static void main(String[] args) { String nomeCompleto; System.out.print(nomeCompleto); }

Listagem 1: método de inicialização com a declaração de uma variável

Neste exemplo, temos uma variável “nomeCompleto” que está sendo declarada, mas.. onde está sendo feita a inicialização?

Eis um caso em que teremos a nossa boa e velha mensagem de NullPointerException.

Dica: Tentem sempre criar validações antes de usar os métodos.

Exemplo do caso acima:

public static void main(String[] args) { String nomeCompleto; If(nomeCompleto != null){ System.out.print(nomeCompleto); }else{ System.out.print(“Erro ao apresentar o nome”); } }

Listagem 2: Validando se o nome está nulo.

Links Úteis

Artigos relacionados