Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Solucionado (ver solución)
Solucionado
(ver solución)
1
respuesta

[Duda] Optional como alternativa para el try catch

me gustaria utilizar optional en el constructor de la clase episodio:

public class Episode {
    Integer seasonNum;
    String title;
    Integer episodeNum;
    double rating;
    LocalDate releasedDate;

    public Episode(Integer num, DataEpisodes e) {
        this.seasonNum = num;
        this.title = e.title();
        this.episodeNum =e.episodeNum();
        //para pasar de String a double
        try {
            this.rating = Double.valueOf(e.rating());
        }catch (NumberFormatException ex){
            this.rating = 0.0;
        }
        try {
            this.releasedDate = LocalDate.parse(e.realaseDate());
        }catch (DateTimeParseException ex){
            this.releasedDate = null;
        }
    }

en caso de que la fecha de lanzamiento sea null o no este especificada.

es posible declara un optional del tipo LocalDate? sigue la sbuena sparcticas? no va en contra de las recomendaciones del saber mas?

gracias?

1 respuesta
solución!

¡Hola Juan, espero que estés bien!

Entiendo tu pregunta sobre cómo utilizar Optional en el constructor de la clase Episode. Sí, es posible utilizar Optional en este caso para manejar el escenario en el que la fecha de lanzamiento sea null o no esté especificada. Utilizar Optional en lugar de try-catch puede hacer que tu código sea más limpio y seguro, evitando posibles errores como NullPointerException.

Aquí te dejo un ejemplo de cómo podrías utilizar Optional en tu constructor:

public class Episode {
    Integer seasonNum;
    String title;
    Integer episodeNum;
    double rating;
    Optional<LocalDate> releasedDate;

    public Episode(Integer num, DataEpisodes e) {
        this.seasonNum = num;
        this.title = e.title();
        this.episodeNum = e.episodeNum();
        this.rating = Double.valueOf(e.rating());
        this.releasedDate = Optional.ofNullable(e.realaseDate())
                                    .map(LocalDate::parse);
    }
}

En este ejemplo, hemos declarado releasedDate como un Optional y lo hemos inicializado utilizando Optional.ofNullable y map para manejar el escenario en el que la fecha de lanzamiento sea null o no esté especificada.

Recuerda que es importante seguir las buenas prácticas al utilizar Optional, como evitar el uso de Optional.get() sin Optional.isPresent() y preferir el retorno de Optional en lugar de devolver null.

Espero que esta respuesta te sea de ayuda. ¡Sigue adelante con tu aprendizaje en Java y no dudes en hacer más preguntas si lo necesitas!

Espero haber ayudado y buenos estudios!