【发布时间】:2017-01-22 17:25:32
【问题描述】:
我需要对包含可选选项的两个大小数执行加法操作:
Optional<BigDecimal> ordersTotal;
Optional<BigDecimal> newOrder;
我要实现ordersTotal += newOrder 请务必注意,如果两个值都为空,则结果同样应为空(即不为零)。
这是我想出的:
ordersTotal = ordersTotal.flatMap( b -> Optional.of(b.add(newOrder.orElse(BigDecimal.ZERO))));
但我想知道是否有更优雅的解决方案。
【问题讨论】:
-
如果都是空的,结果应该是0还是空?
-
如果他们都是空的结果也应该是空的 - 将更新问题。
标签: java functional-programming java-8 optional