将Double转换为OptionalDouble的方法

000*_*000 0 java sum optional java-8

我有一个构建列表的新方法,我希望它将列表的总和作为OptionalDouble值返回.

但是,当我使用Java 8计算总和值时,我总是将返回值作为Double.

我该如何转换?

Double to OptionalDouble
Run Code Online (Sandbox Code Playgroud)

以下是我的和计算代码:

private static OptionalDouble sumListValue() {
     // Build list
     List<Double> testList = new ArrayList<>();
     testList.add(...);
     ...
     ...


     return testList.stream().mapToDouble(value -> value).sum();
}
Run Code Online (Sandbox Code Playgroud)

谢谢.

Flo*_*own 6

您可以使用列表的长度将结果包装起来OptionalDouble.

OptionalDouble optional = testList.isEmpty() ? OptionalDouble.empty()
    : OptionalDouble.of(testList.stream().mapToDouble(d -> d).sum());
Run Code Online (Sandbox Code Playgroud)