Solucionado (ver solução)
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 ✓.