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

Duvida (NullPointerExceptiont)

Boa tarde.

Estou com uma pequena dúvida, o código informei, mas diz que é null para as Arrays que não receberam informação.

Existe alguma maneira mais elegante na programação de compilar e ignorar o fato de não ter informação alí?

Tem informação na 0, 1 e 2, porém nas Arrays adiante não.

package testeempresa;

class Funcionario{
    String nome, rg,departamento;
    double salario;            
    int idade;
    Empresa empregados;

    void mostra(){
        for(int i = 0; i < 10; i++){ 
            if (empregados == null)continue; 

            System.out.println();

        } 
    }
}

public class TesteEmpresa {

    public static void main(String[] args) {

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

    Funcionario f1 = new Funcionario();
    f1.salario = 1000;
    f1.nome = "Renato Augusto";
    empresa.adiciona(f1);
    empresa.empregados[0].mostra();

    Funcionario f2 = new Funcionario();
    f2.salario = 1500;
    f2.nome = "Daliene Soares";
    empresa.adiciona(f2);
    empresa.empregados[1].mostra();   

    Funcionario f3 = new Funcionario();
    f3.salario = 1700;
    f3.nome = "Pedro Cardoso";
    empresa.adiciona(f3);
    empresa.empregados[2].mostra();

    empresa.mostraEmpregados();    
    }
}  

class Empresa{

    String nomeEmpresa;
    String cnpj;
    Funcionario[] empregados;
    int livre = 0;

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

    void mostraEmpregados() {
        for (int i = 0; i < this.empregados.length; i++) {
            System.out.println("Funcionário na posição: " + i);
            System.out.println("R$" + this.empregados[i].salario);
        }    
    }
}
2 respostas
solução!

Oi Renato, tudo bom?

Realmente, trabalhar com arrays pode ser um pouco chato e , como você mesmo disse, pouco elegante. Não tem muito como fugir.

É justamente por isso que, no nosso dia-a-dia, dificilmente utilizamos arrays puros. Normalmente, trabalhamos com estruturas de dados um pouco mais faceis de manusear.

No curso java III aqui da alura nós abordamos o framework de coleções do java (Collections framework) no qual você encontrará alternativas ao array puro como array list além de linked list entre outras =)

Qualquer duvida é só falar! Bons estudos.

Entendi. Mais uma vez, muitíssimo obrigado André.