小编典典

Java可选地图和orElse(if-else样式)的链接

java

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();

阅读 242

收藏
2020-11-26

共1个答案

小编典典

您不需要以下orElse子句:

Optional<Float> amount = ...;
Optional<MonetaryAmount> myAmount =
    amount.map(theAmount -> FastMoney.of(theAmount, "EUR"));
2020-11-26