Hola Jose, espero que estés bien
Parece que estás trabajando en un ejercicio donde necesitas recorrer un ArrayList de objetos que pueden ser de diferentes tipos, como Pelicula y Serie, y luego imprimir algunos de sus atributos. Tu código se ve bastante bien, pero hay algunas diferencias con respecto al ejemplo proporcionado en el ejercicio.
En el ejercicio, se sugiere utilizar el operador instanceof para verificar si el objeto es una instancia de Pelicula antes de hacer un casting. Esto es importante para evitar errores en tiempo de ejecución. Además, el ejemplo del ejercicio incluye una condición adicional para imprimir la clasificación solo si es mayor que 2.
Aquí tienes un ejemplo de cómo podrías ajustar tu código para seguir más de cerca el ejemplo del ejercicio:
import com.aluracurso.screenmatch.modelos.Pelicula;
import com.aluracurso.screenmatch.modelos.Serie;
import com.aluracurso.screenmatch.modelos.Titulo;
import java.util.ArrayList;
public class PrincipalConListas {
public static void main(String[] args) {
Pelicula miMovie = new Pelicula("Ghost Rider", 2009);
miMovie.evalua(5);
Pelicula otraMovie = new Pelicula("Harry Potter, Prisionero de askaban", 2004);
otraMovie.evalua(9);
var ajam = new Pelicula("Gato con botas", 2018);
ajam.evalua(8);
Serie casaDragon = new Serie("La casa del dragon", 2022);
ArrayList<Titulo> lista = new ArrayList<>();
lista.add(miMovie);
lista.add(otraMovie);
lista.add(ajam);
lista.add(casaDragon);
for (Titulo item : lista) {
System.out.println("Nombre: " + item.getNombre());
if (item instanceof Pelicula pelicula && pelicula.getClasificacion() > 2) {
System.out.println("Clasificacion: " + pelicula.getClasificacion());
}
}
}
}
En este ejemplo, he añadido la condición pelicula.getClasificacion() > 2 dentro del if, tal como se muestra en el ejercicio. Esto asegura que solo las películas con una clasificación mayor que 2 tendrán su clasificación impresa.
Espero que esto te ayude a completar tu ejercicio. ¡Bons estudios!