我需要对包含选项的两个大小数执行添加操作:
Optional<BigDecimal> ordersTotal;
Optional<BigDecimal> newOrder;
Run Code Online (Sandbox Code Playgroud)
我想实现ordersTotal + = newOrder重要的是要注意,如果两个值都为空,结果同样应为空(即不为零).
这是我想出的:
ordersTotal = ordersTotal.flatMap( b -> Optional.of(b.add(newOrder.orElse(BigDecimal.ZERO))));
Run Code Online (Sandbox Code Playgroud)
但我想知道是否有一个更优雅的解决方案.
对你们来说,我有一个很简单的问题。在Java 8中引入了Optional类型。我有两个类型的对象,Optional<String>我想知道哪种是更优雅的连接它们的方法。
Optional<String> first = Optional.ofNullable(/* Some string */);
Optional<String> second = Optional.ofNullable(/* Some other string */);
Optional<String> result = /* Some fancy function that concats first and second */;
Run Code Online (Sandbox Code Playgroud)
详细地说,如果两个原始Optional<String>对象之一等于Optional.empty(),我也希望整个串联也为空。
请注意,我不是在问如何Optional在Java中连接两个Strings的求值,而是要在一个内部连接两个s Optional。
提前致谢。