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
clause:
Optional<Float> amount = ...;
Optional<MonetaryAmount> myAmount =
amount.map(theAmount -> FastMoney.of(theAmount, "EUR"));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)