1
resposta

[Dúvida] Não consigo colocar o título na comparação

Não consigo colocar o título na comparação

Aguardo resposta desde já agradeço![](Insira aqui a descrição dessa imagem para ajudar na acessibilidade )

1 resposta

Oi Alexandre, tudo bem?

O que está acontecendo aí tem relação com escopo de variável.

Na linha:

listaDeFilmes.forEach(Titulo titulo -> System.out.println(titulo.getNome()));

A variável titulo existe apenas dentro da lambda do forEach. Ou seja, ela só pode ser usada dentro dessa expressão. Fora dela, o compilador não reconhece essa variável, por isso o erro ao tentar fazer:

if (titulo instanceof ...)

Para conseguir comparar com instanceof, você precisa fazer isso dentro do próprio forEach.

Um exemplo de código que resolveria essa questão:

listaDeFilmes.forEach(titulo -> {
    System.out.println(titulo.getNome());

    if (titulo instanceof Filme) {
        Filme filme = (Filme) titulo;
        System.out.println("Classificação: " + filme.getClassificacao());
    }
});

Caso o problema persistir, peço que me retorne com as seguintes informações:

  • Link da aula que está tentando reproduzir o passo.
  • Todo o código do arquivo em questão.

Espero ter ajudado e fico à disposição!

Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!