1
resposta

DESAFIO

EPISODIO

package br.com.benja.ScreenMatchNew.model;

import java.time.LocalDate;
import java.time.format.DateTimeParseException;

public class Episodio {

    private Integer temporada;
    private String titulo;
    private Integer numeroEpisodio;
    private Double avaliacao;
    private LocalDate dataDeLancamento;

    public Episodio(Integer numeroTemporada, DadosEpisodio dadosEpisodio) {
        this.temporada = numeroTemporada;
        this.titulo = dadosEpisodio.titulo();
        this.numeroEpisodio = dadosEpisodio.numero();

        try {
            this.avaliacao = Double.valueOf(dadosEpisodio.avaliacao());
        } catch (NumberFormatException ex){
            this.avaliacao = 0.0;
        }

        try {
            this.dataDeLancamento = LocalDate.parse(dadosEpisodio.dataDeLancamento());
        } catch (DateTimeParseException ex){
            this.dataDeLancamento = null;
        }




    }

    public Integer getTemporada() {
        return temporada;
    }

    public void setTemporada(Integer temporada) {
        this.temporada = temporada;
    }

    public String getTitulo() {
        return titulo;
    }

    public void setTitulo(String titulo) {
        this.titulo = titulo;
    }

    public Integer getNumeroEpisodio() {
        return numeroEpisodio;
    }

    public void setNumeroEpisodio(Integer numeroEpisodio) {
        this.numeroEpisodio = numeroEpisodio;
    }

    public Double getAvaliacao() {
        return avaliacao;
    }

    public void setAvaliacao(Double avaliacao) {
        this.avaliacao = avaliacao;
    }

    public LocalDate getDataDeLancamento() {
        return dataDeLancamento;
    }

    public void setDataDeLancamento(LocalDate dataDeLancamento) {
        this.dataDeLancamento = dataDeLancamento;
    }

    @Override
    public String toString() {
        return "temporada=" + temporada +
                ", titulo='" + titulo + '\'' +
                ", numeroEpisodio=" + numeroEpisodio +
                ", avaliacao=" + avaliacao +
                ", dataDeLancamento=" + dataDeLancamento;
    }
}
1 resposta

Oi, Benjamin! Como vai?

Gostei de ver como você tratou exceções ao converter os dados de avaliação e data de lançamento, garantindo que seu programa não quebre com entradas inválidas.

Uma dica interessante para o futuro é usar o método Optional.ofNullable() para evitar null e deixar seu código mais seguro. Veja este exemplo:


import java.util.Optional;

Optional<LocalDate> dataLancamento = Optional.ofNullable(dadosEpisodio.dataDeLancamento())
    .map(LocalDate::parse);

LocalDate data = dataLancamento.orElse(LocalDate.now());

Esse código tenta converter a data e, se não conseguir, usa a data atual como padrão.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!