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
- 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.
- 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.
- 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).