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

práctica

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());
        }
    }
}

}

1 respuesta

¡Hola, Alexa, espero que estés bien!

Veo que estás trabajando con listas y colecciones en Java, y has implementado un código muy similar al del ejercicio. ¡Bien hecho! Parece que has entendido el concepto de cómo recorrer un ArrayList usando el bucle foreach y cómo utilizar instanceof para verificar el tipo de objeto antes de realizar el casting.

Tu código se ve correcto y sigue la estructura del ejercicio. Aquí tienes un par de cosas a tener en cuenta para asegurarte de que todo funcione bien:

  1. Importaciones Correctas: Asegúrate de que las clases Pelicula, Serie y Titulo están correctamente importadas y definidas en tu proyecto. Parece que ya lo has hecho bien.

  2. Uso de instanceof: Has utilizado instanceof de manera adecuada para verificar si el objeto es una instancia de Pelicula antes de acceder a su método getClasificacion(). Esto es importante para evitar errores de tiempo de ejecución.

  3. Evaluación de Películas: Veo que estás utilizando el método evalua() para asignar una clasificación a las películas. Asegúrate de que este método está correctamente implementado en la clase Pelicula.

  4. Salida de Consola: Tu bucle foreach está configurado para imprimir el nombre de cada título y, si es una película con clasificación superior a 2, también imprimirá la clasificación. Esto debería funcionar como se espera.

Si todo está configurado correctamente, tu programa debería compilar y ejecutarse sin problemas, mostrando la información de cada título en la consola.

Espero que esta revisión te sea útil y que continúes avanzando con éxito en tu aprendizaje de Java. ¡Espero haber ayudado y buenos estudios!