3
respostas

[Bug] Ao colocar o nome da série no console, estou levando uma exceção...

Pessoal, boa noite! Ao executar meu projeto no IntelliJ e, colocar o nome da série no console, estou tomando a seguinte exceção:

java.lang.NullPointerException: Cannot invoke "java.lang.Integer.intValue()" because the return value of "br.com.alura.na.online.alocadora.sua.screen_math.doMain.model.DadosDeSerie.totalDeTemporadas()" is null at br.com.alura.na.online.alocadora.sua.screen_math.principais.Principal.exibeMenu(Principal.java:27) ~[classes/:na] at br.com.alura.na.online.alocadora.sua.screen_math.ScreenMathApplication.run(ScreenMathApplication.java:19) ~[classes/:na] at org.springframework.boot.SpringApplication.lambda$callRunner$5(SpringApplication.java:791) ~[spring-boot-3.4.0-M3.jar:3.4.0-M3]

3 respostas

Segue o código do DTO DadosDeSerie.java:

@JsonIgnoreProperties(ignoreUnknown = true)
public record DadosDeSerie(
        @JsonAlias("Title")
        String titulo,
        @JsonAlias("totalSeasons")
        Integer totalTemporadas,
        @JsonAlias("imdbRating")
        String avaliacao
) {
}

Oi, Fagner! Tudo bem?

Sobre sua última dúvida, a exceção NullPointerException indica que o método totalDeTemporadas() está retornando null quando deveria retornar um Integer com valor válido. O problema pode estar ocorrendo se o atributo totalTemporadas do DTO DadosDeSerie não estiver sendo inicializado corretamente antes de ser usado.

Para corrigir isso, verifique as seguintes partes no seu código:

  1. Validação do valor retornado pelo método totalDeTemporadas(): No método onde você utiliza totalDeTemporadas(), adicione uma verificação de null para evitar a exceção. Veja como ajustar:

    if (dadosDeSerie.totalDeTemporadas() != null) {
        int temporadas = dadosDeSerie.totalDeTemporadas().intValue();
        // Continue com o processamento usando "temporadas"
    } else {
        System.out.println("Número total de temporadas não disponível.");
    }
    
  2. Inicialização no construtor: Certifique-se de que o totalTemporadas está corretamente inicializado ao instanciar DadosDeSerie. Se estiver usando uma API para popular esses dados, verifique se o campo totalSeasons está presente e corretamente mapeado.

Caso nenhuma das indicações que passei acima solucione o seu problema, peço que compartilhe comigo todo o seu código, pois, seu erro pode estar acontecendo em outra parte do seu código. Compartilhe usando o GitHub ou Drive do Google como meio.

Fico à disposição. Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.

Opa, muito obrigado pela atenção! Vou colocar o projeto no github, e, compartilho por aqui o link do mesmo. E, me perdoe pela demora, pois, não estava com o notebook disponível.