Java 中是否有一种优雅且流式的方式来表示“如果该值存在,则将此可选值映射到另一个带有计算值的可选值,否则返回一个空的可选值”?
我想到了这样的事情:
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
子句:
Optional<Float> amount = ...;
Optional<MonetaryAmount> myAmount =
amount.map(theAmount -> FastMoney.of(theAmount, "EUR"));
关于java - Java 可选映射和 orElse 的链接(if-else 样式),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47571787/