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

Exercício 02 - Aula 04

Minha resposta está de acordo com a resposta proposta pelo instrutor, no entanto quando estava testando sempre dava erro mesmo eu tendo certeza que a parte pedida no exercício estava correta, então a pergunta é, em qual parte eu errei?

Código:

class Empresa {
    int cnpj;
    String nome;
    Funcionario[] funcionario;
    int posic;

    void adicionar(Funcionario f) {
        this.funcionario[this.posic] = f;
        this.posic++;
    }

    void imprimeEmpresa(){
        System.out.println(this.nome);
        System.out.println(this.cnpj);
        for(int i=0; i<this.funcionario.length; i++) {
            Funcionario aux = this.funcionario[i];
            if(aux == null)
                continue;
            System.out.println(aux.nome + " | " + aux.salario);
        }
    }
}

class Funcionario {
    double salario;
    String nome;
}

class Array {
    public static void main(String[] args) {
        Empresa e = new Empresa();
        e.posic = 0;
        e.nome = "Casa S.A.";
        e.cnpj = 190190;
        Funcionario f = new Funcionario();
        f.nome = "Julio";
        f.salario = 10.0;
        e.adicionar(f);
        e.imprimeEmpresa();
    }
}

O exercício pedia para fazer a função adicionar.

O erro que recebo é: Exception in thread "main" java.lang.NullPointerException at Empresa.adicionar(04_Arrays.java:8) at Array.main(04_Arrays.java:38).

Obrigado.

2 respostas
solução!

Olá Fernando,

Está acontecendo o erro porque você está usando o array de Funcionario[] funcionario na classe Empresa sem instanciá-lo.

Tente colocar algo como:

 Funcionario[] funcionario =  new Funcionario[10];

Espero ter te ajudado.

Obrigado Cássio!