Java 8有许多可选类,例如OptionalDoubleOptionalIntOptionalLong

有没有一种很好的方法来处理相同类型的Optional值?也就是说,我希望能够做到:

OptionalDouble d1 = OptionalDouble.of(1.);
OptionalDouble d2 = OptionalDouble.of(2.);
OptionalDouble d3 = OptionalDouble.of(3.);

OptionalDouble result = d1.add(d2).multiply(d3);

当然,如果其中任何一个为“空”,则结果应该为空。搜寻了一下之后,我发现了一些代码示例,人们在其中使用了这些函数(例如add),但这不是API的一部分(是吗?)。

最佳答案

奇怪的。引用 Optional 具有 map 方法,您可以使用该方法执行与所需操作类似的操作,但是原始可选参数中似乎缺少该方法。我相信您当前唯一的求助方法是使用OptionalDouble::isPresentOptionalDouble::ifPresent

或者,您可以定义自己的辅助add方法或定义自己的OptionalDouble类以包括这些方法。

关于java - Java 8可选*值上的操作。,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23414903/

10-10 16:44