1
resposta

Desafio: Foreach e Instanceof

package br.com.alura.meuprograma.principal;

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

import java.util.ArrayList;

public class PrincipalComListas {

    public static void main(String[] args) {
        Filme filmeVenceOscar = new Filme(" Ainda estou aqui",2024);
        filmeVenceOscar.avalia(8);
        Filme  filmeEt = new Filme("ET",1980);
        filmeEt.avalia(10);
        Filme anora = new Filme("Anora",2025);
        anora.avalia(9);

        Serie aRodaDoTempo = new Serie("A Roda do Tempo", 2023);
        aRodaDoTempo.avalia(7);

        ArrayList<Titulo> lista =  new ArrayList<>();
        lista.add(anora);
        lista.add(filmeVenceOscar);
        lista.add(filmeEt);
        lista.add(aRodaDoTempo);
        for (Titulo item: lista) {
            System.out.println(item.getNome());
            if (item instanceof Filme filme && filme.getClassificacao() > 2 ){
                System.out.println("Classificação " + filme.getClassificacao());
            }

        }
    }
}

Print da compilação do código

1 resposta

Oi, Terezinha! Como vai?

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

Você usou muito bem o foreach e o instanceof com pattern matching, recurso mais moderno que simplifica o código e evita casts explícitos. A lógica para exibir apenas os filmes com classificação acima de 2 ficou clara e bem implementada.

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