7
respostas

Exception in thread "main" java.lang.NullPointerException

Olá. O código que eu fiz e postei no site funcionou perfeitamente. Já o código da classe Empresa da resposta do exercício me retornou o erro abaixo.

Por que será esta ocorrendo erro de ponteiro nulo?

Exception in thread "main" java.lang.NullPointerException at EmpresaCerta.adiciona(EmpresaCerta.java:7) at TestaFuncionario.main(TestaFuncionario.java:21)

class TestaFuncionario{ public static void main(String[] args) {

Funcionario func1 = new Funcionario(); func1.nome = "Daniel"; func1.salario = 2000 ; func1.setDataEntBco(10,10,2005);

Funcionario func2 = new Funcionario(); func2.nome = "PAULO"; func2.salario = 1500; func2.setDataEntBco(12,10,2010);

Funcionario func3 = new Funcionario(); func3.nome = "LETICIA"; func3.salario = 3200; func3.setDataEntBco(12,10,2001);

EmpresaCerta emp = new EmpresaCerta();

emp.adiciona(func1); emp.adiciona(func2); emp.adiciona(func3);

}

}

class Funcionario{

String nome; String departamento; double salario; double ganhoAnual; String rg;

Data dataEntradaBanco = new Data();

void setDataEntBco(int d, int m, int a){ this.dataEntradaBanco.setData(d,m,a); }

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

double calculaGanhoAnual(){ this.ganhoAnual = this.salario * 12;

return ganhoAnual; }

void mostra() { // imprime outros atributos... System.out.println("Data de entrada: " + this.dataEntradaBanco.getFormatada()); } }

class EmpresaCerta{ Funcionario[] empregados; String cnpj; int livre = 0;

void adiciona(Funcionario f) { this.empregados[this.livre] = f; this.livre++; } }

7 respostas

Daniel poderia colocar seu código formatado aqui? Seria mais facil de entender.

Obrigado Alisson. Consegui resolver aqui.

Boa Daniel qual era o seu erro?

Você tem que instanciar o array de funcionários e definir uma quantidade.

"Funcionario [] funcs = new Funcionario[10];"

Eu comecei com 10, mas acho que pode colocar quantos quiser kkk.

Pls, help me. Estou com o mesmo erro. Tentei invocar o método

adiciona

mas ele me retornou esse erro de NullPointerException

}

class TestaFuncionario{
    public static void main(String[] args) {
    Funcionario f1 = new Funcionario();
    f1.nome = "Eduardo";
    f1.salario = 12000.0;
    f1.departamento = 1;

    f1.batePonto(0);
    f1.recebeAumento(500.0);

    System.out.println(" Salário atual: R$ "+f1.salario);
    System.out.println(" Ganho Anual: R$ "+f1.calculaAnual());

    Empresa emp = new Empresa();

    //invocando o método adiciona
    emp.adiciona(f1);
    }
}

class Empresa{
    String nome;
    String cnpj;
    String nomeFantasia;
    String endereco;
    int livre = 0;
    Funcionario[] funcionario;

    void adiciona(Funcionario f){
        this.funcionario[this.livre] = f;
        this.livre++;

    }
}

Resolvido! Eles fazem propositalmente, no exercício posterior estava a resposta. "A pressa é inimiga de perfeição" haha

Haahahahahah