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

Haga lo que hicimos en aula: declarando constructores

package com.alura.screenmatch.principal;

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

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("Clasificación: " + pelicula.getClasificacion());
        }
    }
}

}

1 respuesta

Hola Alexis, espero que estés bien

Parece que estás siguiendo correctamente el ejercicio que se hizo en clase sobre la declaración de constructores y el uso de instanceof para recorrer una lista de títulos. El código que compartiste se ve bien y parece estar alineado con lo que se espera en el ejercicio.

Aquí hay algunos puntos que podrías verificar para asegurarte de que todo funcione correctamente:

  1. Constructores de Clases: Asegúrate de que las clases Pelicula y Serie tengan constructores que acepten los parámetros que estás pasando, como el nombre y el año.

  2. Métodos de Evaluación y Clasificación: Verifica que los métodos evalua y getClasificacion estén correctamente implementados en la clase Pelicula. Estos métodos deben permitirte asignar y recuperar la clasificación de las películas.

  3. Método getNombre: Asegúrate de que la clase Titulo (o sus subclases) tenga un método getNombre que devuelva el nombre del título, ya que lo estás utilizando para imprimir el nombre de cada elemento en la lista.

  4. Uso de instanceof: El uso del patrón instanceof con el operador de coincidencia de patrones (como instanceof Pelicula pelicula) es una característica de Java más reciente, así que asegúrate de que estás utilizando una versión de Java que lo soporte (Java 16 o superior).

Si todo esto está en orden, tu código debería funcionar correctamente. Si todavía encuentras problemas, intenta revisar los mensajes de error que podrías estar recibiendo para obtener más pistas sobre lo que podría estar mal.

Espero haber ayudado y buenos estudios!