Java中是否有一种优雅的流式处理方式,可以说“如果此Optional映射到具有计算值的另一个Optional,如果该值存在,则返回一个空的Optional”?
我想到了类似的东西:
Optional<Float> amount = ...; Optional<MonetaryAmount> myAmount = amount .map(theAmount -> FastMoney.of(theAmount, "EUR")).orElse(Optional.empty());
但这是不可能的。
我想出的解决方案有些冗长,而不像流式:
Optional<Float> amount = ...; Optional<MonetaryAmount> myAmount = amount.isPresent() ? Optional.of(FastMoney.of(amount.get(), "EUR")) : Optional.empty();
您不需要以下orElse子句:
orElse
Optional<Float> amount = ...; Optional<MonetaryAmount> myAmount = amount.map(theAmount -> FastMoney.of(theAmount, "EUR"));