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

Dúvida no Ex. 2 da Aula 4 - Arrays

Galera quando fui rodar meu código desse exercicio.

class Funcionario{ String nome; double salario; String cargo;

void mostra(){ System.out.println("Nome: " + this.nome); System.out.println("Salario: " + this.salario); System.out.println("Cargo: " + this.cargo); }

}

class Empresa { String nome; Funcionario[] empregados; String cnpj; int posicao = 0;

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

class Programa{ public static void main(String[] args) { Funcionario f1 = new Funcionario(); f1.salario = 5200; f1.nome = "Maurício Mime";

Empresa shilfti = new Empresa(); shilfti.adiciona(f1);

} }

Ta dando o seguinte erro. Exception in thread "main" java.lang.NullPointerException at Empresa.adiciona(fatorial.java:22) at Programa.main(fatorial.java:36)

Não to conseguindo resolver. Alguém pode me ajudar?

4 respostas
solução!

Oi Mauricio, tudo bem?

O problema aí é porque a variável Funcionario[] empregados tem valor inicial null.

Você pode resolver inicializando o array:

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

Isso é discutido já no começo próximo exercício (exercício 3). Esse código copiei de lá. :)

https://www.alura.com.br/course/java-1/section/4/exercise/3

Faz sentido?

Abraços.

Opa era isso mesmo vlw. No exercício seguinte tinha a resposta.

Isso Mauricio!

Qualquer dúvida é só falar que estamos aqui para tentar ajudar. :)

Bem, vou aproveitar e dar duas dicas que são coisas que costumamos fazer aqui no fórum:

I. Quando postar código fonte, posta ele entre três crases, igual aparece em alguns execícios, e também como é explicado no botão formatação que tem aqui em cima da caixa de comentário.

Quando você faz isso, o código aparece bonitão, formatado, e é bem mais fácil de ler e encontrar possíveis erros, agilizando a resolução do problema.

II. Existe um botão "marcar como solução" em cada resposta. Sempre que alguém por aqui resolver uma dúvida sua marca a resposta como solução. É uma forma de mostrar agradecimento com a pessoa, e também uma forma de indicar que a dúvida foi resolvida e o tópico encerrado.

Bons estudos! ;)

Abraço.

Oi Mauricio, é isso mesmo!

Eu listei essas coisas para o caso de não estar acostumado a visitar o fórum. :)

Qualquer coisa estamos aqui. Um abraço e bons estudos.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software