Java 8有许多可选类,例如OptionalDouble
,OptionalInt
和OptionalLong
。
有没有一种很好的方法来处理相同类型的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::isPresent
或OptionalDouble::ifPresent
。
或者,您可以定义自己的辅助add
方法或定义自己的OptionalDouble
类以包括这些方法。
关于java - Java 8可选*值上的操作。,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23414903/