Solucionado (ver solução)

Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

Solucionado
(ver solução)
1
resposta

dando erro NullPointerException

erro :java.lang.NullPointerException: Cannot invoke "java.lang.Double.doubleValue()" because the return value of "br.com.Amanda.screenmatch.Model.Episodio.getAvaliacao()" is null

Map<Integer, Double> avaliacaoPorTemporada = episodios.stream() .filter(e -> e.getAvaliacao() > 0.0) .collect(Collectors.groupingBy(Episodio::getTemporada, Collectors.averagingDouble(Episodio::getAvaliacao))); System.out.println(avaliacaoPorTemporada);

1 resposta
solução!

Oi Amanda! Tudo bem?

Esse erro indica que tem algum episódio na sua lista episodios que possui a avaliação (avaliacao) como null. Quando o código tenta chamar o método doubleValue() em um null, ele lança um NullPointerException.

Para resolver isso, você pode adicionar um filtro adicional para garantir que apenas os episódios com uma avaliação não nula sejam processados. Aqui está como você pode ajustar o seu código:

Map<Integer, Double> avaliacaoPorTemporada = episodios.stream()
        .filter(e -> e.getAvaliacao() != null && e.getAvaliacao() > 0.0)
        .collect(Collectors.groupingBy(Episodio::getTemporada,
                Collectors.averagingDouble(Episodio::getAvaliacao)));
System.out.println(avaliacaoPorTemporada);

Neste código, adicionei e.getAvaliacao() != null ao filtro para garantir que apenas os episódios com uma avaliação não nula sejam considerados. Isso deve evitar o NullPointerException.

Espero ter ajudado e bons estudos!

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