1
resposta

Não consigo imprimir os valors da Array

Oi Pessoal, tudo bem? não consigo imprimir os valores da minha classe array. Podem me mostrar como se faz? Quanto tento compilar a classe programa aparece esse erro aqui: Exception in thread "main" java.lang.NullPointerException at Programa.main(Empresa.java:51)

public class Empresa{
    private String empresa;
    private String cnpj;
    private Funcionario[] empregados;

    public void setEmpresa(String empresa){
        this.empresa = empresa;
    }

    public String getEmpresa(){
        return this.empresa;
    }

    public void setCnpj(String cnpj){
        this.cnpj = cnpj;
    }

    public String getCnpj(){
        return this.cnpj;
    }

    public Funcionario getFuncionario (int posicao){
        return this.empregados[posicao];
    }
}

class Funcionario{
    private String nomeFuncionario;
    private int idade;
    private double salario;
    private String dataEntrada;
    private String rg;
    private String departamento;

    public void setNomeFuncionario(String nomeFuncionario){
        this.nomeFuncionario = nomeFuncionario;
    }

    public String getNomeFuncionario(){
        return this.nomeFuncionario;
    }
}

class Programa{
    public static void main(String[] args) {
        Empresa f1 = new Empresa();
        f1.setEmpresa("Empresa genérica");
        f1.setCnpj("123.456.789");

        Funcionario[] funcionarios = new Funcionario[2];
        f1.getFuncionario(0).setNomeFuncionario("Diego");

        System.out.println(f1.getFuncionario(0).getNomeFuncionario());


    }
}
1 resposta

Opa Diego. O erro está acontecendo porque em nenhum momento você adiciona um "Funcionario" dentro do seu array de funcionarios, além de não estar inicializando o seu array.

O que você pode fazer é criar um método para adicionar o funcionário dentro do seu array, lembrando de guardar o próximo índice livre do array. Segue uma possível e simples implementação abaixo:

public class Empresa{

    private Funcionario[] empregados;
    private int proxIndice = 0;

    public Empresa(int quantFuncionarios) {
        empregados = new Funcionario[quantFuncionarios];
    }

    public void adiciona(Funcionario funcionario) {
        empregados[proxIndice] = funcionario;
        proxIndice ++;
    }
}