Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Erro de NullPointerException ao utilizar o método de editar a data de admissão.

Acho que estou errando em não instanciar a classe Data, mas não sei onde faço isso. Já tentei colocar direto no método

public void setDataDeAdimissao(int dia, int mes, int ano){
        Data dataEntradas = new Data();
        this.dataDeAdmissao.setPreencheData(dia, mes, ano);
    }

ou até mesmo instanciar na classe que tem o main, mas continua retornando o NullPointer.

Segue minhas classes para ver se vocês conseguem me ajudar:

public class Data {

    private int dia;
    private int mes;
    private int ano;

    public void setPreencheData(int dia, int mes, int ano){
        this.dia = dia;
        this.mes = mes;
        this.ano = ano;
    }

    public String getFormatada(){
        return this.dia + "/" + this.mes + "/" + this.ano;
    }

}
public class Funcionario {

    private double salario;
    private String nome;
    private String cpf;
    private Data dataDeAdmissao;


    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 getCpf(){
        return this.getCpf();
    }

    public void setCpf(String cpf){
        this.cpf = cpf;
    }

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

    public Data getDataDeAdmissao(){
        return this.dataDeAdmissao;
    }

    public void setDataDeAdimissao(int dia, int mes, int ano){
        this.dataDeAdmissao.setPreencheData(dia, mes, ano);
    }

    public String getInfo(){
        return "Nome: " + this.nome + System.lineSeparator() +
                "CPF: " + this.cpf + System.lineSeparator() +
                "Salario: " + this.salario + System.lineSeparator() +
                "Data de Admissão: " + this.dataDeAdmissao + System.lineSeparator() +
                "Ganho anual: " + getGanhoAnual() + System.lineSeparator();
    }


}
public class TesteFuncionario {

    /**
     * @param args
     */
    public static void main(String[] args) {

        Funcionario diego = new Funcionario();


        diego.setNome("Diego");
        diego.setCpf("123456789");
        diego.setDataDeAdimissao(5, 6, 2017);
        diego.setSalario(3000);

        System.out.println(diego.getInfo());

    }

}
1 resposta
solução!

Aqui o problema:

public class Funcionario {

    private double salario;
    private String nome;
    private String cpf;
    private Data dataDeAdmissao;

Você precisa deixar a variável dataDeAdmissao inicializada.

public class Funcionario {

    private double salario;
    private String nome;
    private String cpf;
    private Data dataDeAdmissao = new Data();