今天,当我使用流平均值编写代码时,我知道流平均值返回OptionalDouble而不是double。我知道为什么要使用OptionalDouble

当我们调用流平均以至于需要OptionalDouble时,还可以返回什么?

一个例子将不胜感激。提前致谢。

我的代码如下:

OptionalDouble average = persons.stream()
            .mapToInt(person -> person.getAge())
            .average();
if(average.isPresent()) {
    System.out.println(average.getAsDouble());
}

这里personsArrayList类的Person

最佳答案

返回OptionalDouble只是因为流可能为空,这是让用户决定在“无值”情况下要做什么的一种很好的方法,即,您可以为orElse提供替代值,通过ifPresent执行另一操作,并抛出异常通过orElseThrow

09-26 23:37