我有一个构建列表的方法,并且我希望它返回列表的平均值作为Optional值。

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

我如何转换

OptionalDouble to Optional<Double>?

以下是我的平均计算代码:
private static Optional<Double> averageListValue() {
     // Build list
     List<Double> testList = new ArrayList<>();
     testList.add(...);
     ...
     ...


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

谢谢。

最佳答案

我会选择这种方法:

private static Optional<Double> convert(OptionalDouble od)
{
    return od.isPresent() ?
        Optional.of(od.getAsDouble()) : Optional.empty();
}

07-26 03:38