1
resposta

dando.NullPointerException

DoubleSummaryStatistics est = episodios.stream() .filter(e -> e.getAvaliacao() > 0.0) .collect(Collectors.summarizingDouble(Episodio::getAvaliacao)); System.out.println("Média: " + est.getAverage()); System.out.println("Melhor episódio: " + est.getMax()); System.out.println("Pior episódio: " + est.getMin()); System.out.println("Quantidade: " + est.getCount());

1 resposta

Oi, Amanda! Tudo bem?

Pelo que você descreveu no título, você está enfrentando um NullPointerException no seu código. Esse erro ocorre quando você tenta usar um objeto que não foi inicializado. Vamos dar uma olhada mais de perto no seu código para identificar onde isso pode estar acontecendo:

DoubleSummaryStatistics est = episodios.stream()
                .filter(e -> e.getAvaliacao() > 0.0)
                .collect(Collectors.summarizingDouble(Episodio::getAvaliacao));
System.out.println("Média: " + est.getAverage());
System.out.println("Melhor episódio: " + est.getMax());
System.out.println("Pior episódio: " + est.getMin());
System.out.println("Quantidade: " + est.getCount());

A primeira coisa que precisamos verificar é se a lista episodios foi inicializada corretamente antes de você tentar fazer o stream. Se episodios for null, qualquer operação que você tentar fazer com ela, como o stream(), resultará em um NullPointerException.

Aqui está um exemplo de como você pode garantir que episodios não é null antes de processar:

if (episodios != null) {
    DoubleSummaryStatistics est = episodios.stream()
                .filter(e -> e.getAvaliacao() > 0.0)
                .collect(Collectors.summarizingDouble(Episodio::getAvaliacao));
    System.out.println("Média: " + est.getAverage());
    System.out.println("Melhor episódio: " + est.getMax());
    System.out.println("Pior episódio: " + est.getMin());
    System.out.println("Quantidade: " + est.getCount());
} else {
    System.out.println("A lista de episódios está vazia ou não foi inicializada.");
}

Essa verificação simples ajuda a evitar o NullPointerException ao garantir que você só tenta processar a lista se ela não for null.

Se a lista não for null e ainda assim você estiver recebendo um NullPointerException, o próximo passo é verificar se algum elemento dentro da lista episodios é null. Para isso, você pode adicionar uma verificação dentro do filter:

DoubleSummaryStatistics est = episodios.stream()
                .filter(e -> e != null && e.getAvaliacao() > 0.0)
                .collect(Collectors.summarizingDouble(Episodio::getAvaliacao));
System.out.println("Média: " + est.getAverage());
System.out.println("Melhor episódio: " + est.getMax());
System.out.println("Pior episódio: " + est.getMin());
System.out.println("Quantidade: " + est.getCount());

Essas abordagens devem ajudar a identificar e resolver o problema de NullPointerException no seu código.

Um abraço e bons estudos.

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