3
respostas

Construtor Retornando ''null''

Boa noite

Meu código, quando o construtor é usado, retorna null, mas esse bug desaparece quando volto o setNome (fiz isso com um filme aleatório)

Imagem do terminal

E este filme, sem o setter, da null (assim como os outros)

Insira aqui a descrição dessa imagem para ajudar na acessibilidadeAqui está o construtor usado: Insira aqui a descrição dessa imagem para ajudar na acessibilidade

3 respostas

Olá Matheus!

O problema no seu construtor está nesta linha:

this.setNome(getNome());

Esse código está chamando o getNome() antes de o nome ser atribuído, ou seja, está usando o valor default, que é null. Por isso, o nome do filme acaba ficando null, como mostrado no log:

Filme: null (1982)

Para corrigir você deve usar o parâmetro nome diretamente, assim:

public Movie(String nome) {
    this.setNome(nome);
}

Só para complementar..

  1. getNome() está acessando o valor do campo da classe, que ainda não foi inicializado;

  2. nome, o parâmetro do construtor, contém o valor "Rambo - Programado para Matar";

  3. Você deve usar esse parâmetro para inicializar corretamente o campo interno da classe via setter.

Olá meu nobre o problema do seu codigo se trata de O problema no seu construtor está nesta linha:

this.setNome(getNome());`
Essa linha está pegando o nome antes de ele ser definido, ou seja, getNome() retorna null, e você está passando esse null para o setNome() — o que explica por que seu objeto fica com o nome null

✅ Solução Você precisa passar o parâmetro nome diretamente para o setter, assim:

public Movie(String nome) {
    this.setNome(nome); // Correto: usa o parâmetro recebido no construtor
}

Não consigo colocar nome, mas eu coloquei

`public Movie(String s, int anoDeLancamento) {
        super(s, anoDeLancamento);
    }

e funcionou corretamente