链接Java可选地图和orElse(if-else-style)

时间:2017-11-30 10:58:28

标签: java optional

在Java中是否有优雅的流媒体方式说“如果值存在,则将此可选映射到具有计算值的另一个可选,否则返回空可选”?

我想到了类似的东西:

Optional<Float> amount = ...;
Optional<MonetaryAmount> myAmount = amount.isPresent() ?
          Optional.of(FastMoney.of(amount.get(), "EUR")) : Optional.empty();

但这是不可能的。

我提出的解决方案有些冗长而且不像流媒体一样:

String.IsNullOrWhitespace(string value)

1 个答案:

答案 0 :(得分:5)

您不需要orElse子句:

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