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

Primeiros Passos com Java Aula4 - Exercicio4 - Gabarito Faltando Linha de código

No gabarito não consta a linha

if (this.empregados[i] == null) continue;

No método mostraEmpregados()

void mostraEmpregados() {
        for (int i = 0; i < this.empregados.length; i++) {

               if (this.empregados[i] == null) continue;
            System.out.println("Funcionario na posicao: " + i);
            System.out.println("Salario: " + this.empregados[i].salario);


        }
    }

O que ocasiona NullPointerException ao rodar.

3 respostas
solução!

O método mostraEmpregados(), funcionou correctamente sem a necessidade de por if(this.empregados[i] == null) continue; Isso porque no for utilizei a variavel livre como o limite, o que garantiza que apenas mostra os empregados que realmente existem, evitando neste caso o NullPointerException.

void mostraTodasAsInformacoes(){ for (int i = 0; i < this.livre; i++) { System.out.println("Funcionário na posição: " + i); this.empregados[i].mostra(); }

E muito obrigado na mesma.

Como disse Deodato, também usei a variável "posicaoLivre" como limitador para a contagem no for, deixando assim o código até mais limpinho.

    void mostrando() {
        for (int i = 0; i < this.posicaoLivre; i++) {
            System.out.println("Funcionario da posição: " + i);
            System.out.println("Salário: R$ " + this.empregados[i].salario);
        }
    }

Desculpem-me, erro meu, não havia reparado que o gabarito utilizava a variável livre. Obrigado pelos esclarecimentos!