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

Dúvida com Array

Prezados colegas programadores,

Eu acho que sei o porque do erro, só gostaria de saber se é isso.

Ao executar o código abaixo, ocorre o seguinte erro:

run: Vitor Exception in thread "main" java.lang.NullPointerException at Exercícios.TestaEmpresa.main(Exercicio_v2.java:103) C:\Users\vsampaio\AppData\Local\NetBeans\Cache\8.2\executor-snippets\run.xml:53: Java returned: 1 FALHA NA CONSTRUÇÃO (tempo total: 0 segundos)

Acredito que este erro ocorre porque:

Criei o array dentro da classe Empresa do tipo Funcionario com 10 posições. Logo abaixo criei o funcionario Vitor na posição 0 do Array. Quando peço para ele mostrar o nome de todos os funcionarios no Array, ele mostra Vitor e em seguida ocorre erro porque, por mais que eu tenha criado o array com 10 posições, somente na posição 0 eu criei um Funcionario, faltou nas posições 1 a 10. Neste caso, por mais que eu tenha colocado para continuar quando for null, nem null é, pelo que pude entender, o null neste caso seria "Existe, mas não contem", ou seja, existe o funcionario na posição, mas não contem nome. Eu teria que pelo menos chamar o construtor nas posições 1 a 10. O meu entendimento esta certo ?

    public static void main(String[] args){

        Empresa empresa = new Empresa();
        empresa.funcionarios = new Funcionario[10];  

        empresa.funcionarios[0] = new Funcionario();
        empresa.funcionarios[0].nome = "Vitor";

        for(int i = 0; i < empresa.funcionarios.length; i++){
            if(empresa.funcionarios[i].nome == null) continue;
            System.out.println(empresa.funcionarios[i].nome);

        }
    }
2 respostas
solução!

Oi Vitor, tudo bem cara ?

Então o que está acontecendo é algo bem próximo do que disse.

O array, é nada mais nada menos que uma reserva de espaço na memória. Você reservou um espaço de 10 posições que começa em zero e vai até 9 ( 0 + 9 = 10 )

E como você criou espaços para objetos, e cada objeto tem o valor padrão null, ou seja não existe, quando você tenta percorrer o seu array e tenta exibir o nome dos funcionarios, ocorre o erro.

Pois ele quer chamar o atributo nome do seu funcionario e como não existe nenhum funcionário é disparada a nullpointerexeception !

Abraço

Vlw Matheus.