今天,当我使用流平均值编写代码时,我知道流平均值返回OptionalDouble
而不是double
。我知道为什么使用OptionalDouble
。
当我们调用流平均以使我们需要OptionalDouble时还能返回什么?
一个例子将不胜感激。提前致谢。
我的代码如下:
OptionalDouble average = persons.stream()
.mapToInt(person -> person.getAge())
.average();
if(average.isPresent()) {
System.out.println(average.getAsDouble());
}
persons
是ArrayList
类的Person
。
答案 0 :(得分:9)
OptionalDouble
仅仅是因为流可能为空,这是真正的一种好方法,可以让 user 决定在中做什么“无值” 情况,即您可以为orElse
提供一个替代值,通过ifPresent
执行另一操作,通过orElseThrow
引发异常,等等。