Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

Practica

Clase PrincipalConListas
import java.util.ArrayList;
import com.alura.screenmatch.modelos.Pelicula;
import com.alura.screenmatch.modelos.Serie;
import com.alura.screenmatch.modelos.Titulo;

public class PrincipalConListas {

public static void main(String[] args) {

    Pelicula favorita = new Pelicula("El señor de los anillos", 2001);
    favorita.evalua(10);

    Pelicula otra = new Pelicula("John Wick", 2014);
    otra.evalua(9);

    Serie serie = new Serie("La Casa de Papel", 2017);

    ArrayList<Titulo> lista = new ArrayList<>();
    lista.add(favorita);
    lista.add(otra);
    lista.add(serie);

    for (Titulo item : lista) {

        System.out.println("Nombre: " + item.getNombre());

        if (item instanceof Pelicula pelicula && pelicula.getClasificacion() > 2) {
            System.out.println("Clasificacion: " + pelicula.getClasificacion());
        }
    }
}

}
Explicación del código

  1. Uso de ArrayList

Se crea una lista que almacena objetos del tipo Titulo, permitiendo guardar películas y series en la misma lista.

ArrayList lista = new ArrayList<>();
2. Loop foreach

Permite recorrer todos los elementos de la lista de forma sencilla.

for (Titulo item : lista)

Cada vuelta del ciclo toma un elemento de la lista.

  1. Uso de instanceof

Se usa para verificar si el objeto es de tipo Pelicula antes de hacer el casting.

if (item instanceof Pelicula pelicula)

Esto evita errores cuando el objeto es una Serie.

  1. Casting automático (Java moderno)

Java permite declarar la variable dentro del instanceof.

Pelicula pelicula

Así ya podemos usar sus métodos.

Ejemplo de salida en consola
Nombre: El señor de los anillos
Clasificacion: 5

Nombre: John Wick
Clasificacion: 5

Nombre: La Casa de Papel

(La serie no muestra clasificación porque no es una Pelicula).

1 respuesta

¡Hola David, espero que estés bien!

Parece que estás en el camino correcto con tu implementación de la clase PrincipalConListas. Has seguido bien las instrucciones de la actividad, creando una lista de títulos y usando un bucle foreach para recorrerla. También has aplicado correctamente el uso de instanceof para asegurarte de que el objeto es de tipo Pelicula antes de realizar el casting y acceder a sus métodos específicos.

Una cosa que podrías verificar es si el método getClasificacion() está devolviendo el valor esperado. En tu ejemplo de salida, mencionas una clasificación de 5, pero en el código proporcionado, las películas se evalúan con 10 y 9. Asegúrate de que el método evalua() esté configurando correctamente la clasificación.

Además, si estás viendo una salida diferente, verifica que tu clase Pelicula tenga implementado correctamente el método getClasificacion() y que esté devolviendo el valor correcto basado en la evaluación.

Espero que esto te ayude a avanzar y a entender mejor cómo funcionan las listas y el uso de instanceof en Java. ¡Bons estudios!