Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Erro : Exception in thread "main" java.lang.NullPointerException

Boa noite.

Minhas classes estão da seguinte maneira :

class Funcionario {

    private double salario;
    private String nome;
    private String departamento;
    private String rg;
    private Data dataEntrada;

    public Funcionario(String nome){
      this.nome = nome;
    }

    public Funcionario(){

    }

    public double getSalario(){
      return this.salario;
    }

    public void setSalario(double salario){
      this.salario = salario;
    }

    public String getNome(){
      return this.nome;
    }

    public void setNome(String nome){
      this.nome = nome;
    }

    public String getDepartamento(){
      return this.departamento;
    }

    public void setDepartamento(String departamento){
      this.departamento = departamento;
    }

    public String getRg(){
      return this.rg;
    }

    public void setRg(String rg){
      this.rg = rg;
    }

    public Data getDataEntrada(){
      return this.dataEntrada;
    }

    public void setDataEntrada(Data dataEntrada){
      this.dataEntrada = dataEntrada;
    }

    public void recebeAumento(double aumento) {
       this.salario += aumento;
    }

    public double getGanhoAnual() {
        return this.salario * 12;
    }

    public void mostra(){
        System.out.println("Funcionario: " + this.nome +
                                "\nSalario: " + this.salario +
                                "\nDepartamento: " + this.departamento +
                                "\nData de Entrada: " + this.dataEntrada.getFormatada() +
                                 "\nRG: " + this.rg);
    }

}


class TesteFuncionario{

   public static void main(String args[]){

   Funcionario f = new Funcionario();

   f.setNome("Wellington");
   f.setSalario(3500);
   f.setDataEntrada(new Data());

   f.getDataEntrada().preencheData(23,11,2015);

   //f.mostra();

   Funcionario f2 = new Funcionario("Wellington Souza");



   f2.mostra();


   }

}

Quando eu executo minha classe TesteFuncionario, da erro relacionado a minha linha onde está o f2.mostra().

O erro que ocorre é esse: Exception in thread "main" java.lang.NullPointerException at Funcionario.mostra(Funcionario.java:66) at TesteFuncionario.main(TesteFuncionario.java:19)

A linha 66 é onde está o meu método mostra na classe Funcionario. Alguém sabe como resolver ?

2 respostas
solução!

Ele tá dando NullPointerException no mostra quando ele chega na data

this.dataEntrada.getFormatada()

Essa data é um novo objeto, ela precisa ser instanciada antes do teu método mostra, se o objeto não tá instanciado, então, ele tá vazio e lança a exceção. Uma maneira de resolver isso é quando tu tá no Funcionário criando o parâmetro dataEntrada tu instanciar ele logo.

  private Data dataEntrada = new Data();

Boa tarde.

Obrigado pela explicação.

Instanciei a classe data e deu certo.