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

Mi propuesta de constructor

public Titulo(TituloOmdb miTituloOmdb) {

        this.nombre = miTituloOmdb.title();
        this.fechaDeLanzamiento = Integer.valueOf(miTituloOmdb.year());
        if (miTituloOmdb.runtime().contains("N/A")) {
            this.duracionEnMinutos = 0;
        } else {
            String duracionTexto = miTituloOmdb.runtime().replace(" min", "");
            this.duracionEnMinutos = Integer.valueOf(duracionTexto);
        }
    }

ME di cuenta que había películas con N/A, a esas se les asigna 0 minutos, también use el método replace, que quita los minutos, aunque la solución del curso me pareció correcta, ya que veo casi imposible que haya una película con más de 3 digitos en minutos, creí que era mejor simplemente eliminar la palabra "min"

1 respuesta

¡Hola Hector, espero que estés bien!

Tu enfoque para manejar el caso de "N/A" en el tiempo de duración y el uso de replace para eliminar "min" es muy válido y pragmático. Es cierto que es poco probable encontrarse con películas que tengan una duración en minutos con más de tres dígitos, por lo que tu método de simplemente eliminar "min" es eficiente y simple.

Aquí tienes un pequeño ejemplo práctico de cómo podrías mejorar aún más tu constructor para manejar posibles errores de formato:

public Titulo(TituloOmdb miTituloOmdb) {
    this.nombre = miTituloOmdb.title();
    try {
        this.fechaDeLanzamiento = Integer.valueOf(miTituloOmdb.year());
    } catch (NumberFormatException e) {
        this.fechaDeLanzamiento = 0; // o cualquier valor por defecto que prefieras
    }

    if (miTituloOmdb.runtime().contains("N/A")) {
        this.duracionEnMinutos = 0;
    } else {
        try {
            String duracionTexto = miTituloOmdb.runtime().replace(" min", "");
            this.duracionEnMinutos = Integer.valueOf(duracionTexto);
        } catch (NumberFormatException e) {
            this.duracionEnMinutos = 0; // o cualquier valor por defecto que prefieras
        }
    }
}

En este ejemplo, he añadido bloques try-catch para manejar posibles excepciones NumberFormatException, lo que asegura que tu aplicación no se rompa si el formato del año o de la duración no es el esperado. Esto es especialmente útil si estás consumiendo datos de una API donde el formato puede variar.

Espero que esta sugerencia te resulte útil y te ayude a manejar mejor los posibles errores en tu aplicación. ¡Bons estudios!