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

如何将多层Optional.isPresent判断转换为Optional.flatMap实现?

使用Optional.flatMap简化多层判断

你可以直接通过flatMap串联两个Optional操作,替代嵌套的isPresent判断,简化后的代码如下:

private Optional<Commit> getCommit1(String id, Integer number) {
    return repository.findById(id, number)
            .flatMap(revision -> commitRepository.findById(revision.getCommitId()));
}

逻辑说明:

  • repository.findById(id, number)返回Optional<Revision>,若该Optional为空,flatMap会直接返回Optional.empty()
  • 若Optional存在有效Revision对象,flatMap会执行传入的lambda表达式:以revision.getCommitId()为参数调用commitRepository.findById(),该方法返回的Optional<Commit>会被flatMap直接作为最终返回值,无需额外空判断

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 02:03:13