You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java 17:能否用一行代码实现Optional存在则返回否则继续执行?

解决方案

可以利用Java 9引入的Optional.or(Supplier<? extends Optional<? extends T>>)方法,结合Lambda表达式把逻辑简化为一行,完全满足你的要求:

public Optional<String> someMethod() {
    // stuff here
    return checkValue(someValue).or(() -> { /* more stuff here */ return someOtherMethod(); });
}

逻辑说明

  • 仅调用一次checkValue(someValue),避免重复执行复杂逻辑
  • 无需额外变量,直接通过or方法处理分支:
    • 如果checkValue返回的Optional存在值,直接返回该Optional
    • 如果不存在值,执行Lambda中的more stuff逻辑,最后返回someOtherMethod()的结果

你使用的Java 17完全支持Optional.or方法,这个写法既简洁又符合代码规范。

内容的提问来源于stack exchange,提问作者user17331277

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 07:53:39