我有一个构建列表的新方法,我希望它以OptionalDouble值的形式返回列表的总和。

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

我如何转换

Double to OptionalDouble


以下是我用于求和的代码:

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


     return testList.stream().mapToDouble(value -> value).sum();
}


谢谢。

最佳答案

您可以使用列表的长度将结果包装到OptionalDouble中。

OptionalDouble optional = testList.isEmpty() ? OptionalDouble.empty()
    : OptionalDouble.of(testList.stream().mapToDouble(d -> d).sum());

10-02 07:59