Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Faça como eu fiz] Utilizando foreach e instanceof

Agora é com você! Faça o mesmo procedimento que eu fiz na aula, percorrendo o ArrayList de títulos via loop foreach, lembrando de utilizar o instanceof antes de realizar o casting para o objeto Filme.


package br.com.alura.screenmatch.principal;

import br.com.alura.screenmatch.screnmatch.modelos.Filme;
import br.com.alura.screenmatch.screnmatch.modelos.Serie;
import br.com.alura.screenmatch.screnmatch.modelos.Titulo;

import java.util.ArrayList;

public class PrincipalComListas {
    public static void main(String[] args) {
        Filme meuFilme = new Filme("Rambo: Programado para matar",1982);
        meuFilme.avalia(9);
        Filme outroFilme = new Filme("Comando Delta",1986);
        outroFilme.avalia(6);
        var filmeDoCarlos = new Filme("The Terminator", 1984);
        filmeDoCarlos.avalia(10);
        Serie lost = new Serie("Lost", 2000);

        ArrayList<Titulo> lista = new ArrayList<>();
        lista.add(filmeDoCarlos);
        lista.add(meuFilme);
        lista.add(outroFilme);
        lista.add(lost);
        System.out.println("\n***** SAÍDA Utilizando o for-each ***** ");
        for (Titulo item: lista) {
            System.out.println(item.getNome());
            if (item instanceof Filme filme && filme.getClassificacao() > 2) {
                System.out.println("Classificação: " + filme.getClassificacao());
            }
        }
        System.out.println("\n***** SAÍDA utilizando o for *****");
            for (int i = 0; i < lista.size(); i++) {
            if (lista.get(i) instanceof Filme filme && filme.getClassificacao() > 2) {
                System.out.println(i + " - " + "Lista de Filmes: " + lista.get(i).toString() +
                        " - " + "Nota Avaliação: " + ((Filme) lista.get(i)).getClassificacao());
            } else {
                System.out.println(i + " - " + lista.get(i).toString() +  " É uma série!");
            }
        }
    }
}

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

1 resposta
solução!

Olá, Carlos! Tudo bem?

Obrigado por compartilhar seu código no fórum! Gostei muito da forma como você utilizou o instanceof dentro do loop foreach, garantindo que o casting seja seguro e o código fique mais legível.

Uma dica simples para melhorar ainda mais: ao invés de usar o ArrayList, você pode usar a interface List na declaração da lista. Isso traz mais flexibilidade ao código, permitindo que você altere a implementação da lista sem precisar mudar o restante do código.

Continue assim e bons estudos!