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

Utilizando foreach e instanceof

package br.com.alura.screenmatch.principal;

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

import java.util.ArrayList;

public class PrincipalComLista {
    public static void main(String[] args) {
        Filme meuFilme = new Filme("Avatar", 2023);
        Filme meuFavorito = new Filme("Naruto The Last", 2014);
        Serie minhaSerie = new Serie("Round 6", 2023);

        ArrayList<Titulo> lista = new ArrayList<>();
        lista.add(meuFilme);
        lista.add(meuFavorito);
        lista.add(minhaSerie);

        meuFilme.avalia(10);
        meuFavorito.avalia(10);
        minhaSerie.avalia(8);

        for (Titulo item : lista) {
            //System.out.println(item);
            if (item instanceof Filme filme && filme.getClassificacao() > 3) {
                System.out.println("Classificação: " + filme.getClassificacao());
            }
            if(item instanceof  Serie serie) {
                System.out.println("Classsificação da série: " + serie.getAnoDeLancamento());
            }
        }
    }
}
1 resposta
solução!

Oi, André! Como vai?

Agradeço por compartilhar seu código com a comunidade Alura.

Seu uso do instanceof com pattern matching tá ótimo! A forma como você diferencia Filme e Serie dentro do foreach está bem clara, e o uso do operador lógico com cast direto para a variável (filme ou serie) é um recurso muito atual do Java.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!