使用ifPresentOrElse lamba函数时返回的异常值-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

使用ifPresentOrElse lamba函数时返回的异常值

2020-03-22 17:31:19 627 1

我似乎无法弄清楚为什么Unexpected return value在使用lambda时需要从方法中返回某些内容时在IDE上出现此错误的原因。

public Employee getEmployee(long id) {
repository.findById(id).ifPresentOrElse(
                empDetails -> {
                    return service.buildEmployee(empDetails);
                },
        () -> { throw new ResourceNotFoundException(); }
        );

}

问题来源:Stack Overflow

取消 提交回答
全部回答(1)
  • montos
    2020-03-22 17:32:06

    ifPresentOrElse​用于消耗Optional的值(如果存在),否则执行一些其他逻辑。它不能用于返回值或引发异常。

    相反,您可以结合map使用orElseThrow:

    public Employee getEmployee(long id) {
        return repository.findById(id)
                         .map(service::buildEmployee)
                         .orElseThrow(ResourceNotFoundException::new);
    }
    

    回答来源:Stack Overflow

    0 0
相关问答

11

回答

在阿里云上安装和运行Node.js全功略

ycwong 2013-09-18 15:17:30 64424浏览量 回答数 11

53

回答

OSS C/C++ SDK分享交流区

否极泰来 2015-06-15 17:05:09 48074浏览量 回答数 53

42

回答

【精品问答集锦】Python热门问题

小六码奴 2019-05-30 15:27:34 137139浏览量 回答数 42

82

回答

OSS入门教程

belle.zhoux 2014-07-07 17:14:27 151514浏览量 回答数 82

31

回答

OSS for PHPWIND 8.7 [20121127更新]

enj0y 2012-09-10 15:48:13 55437浏览量 回答数 31

24

回答

【精品问答】python技术1000问(1)

问问小秘 2019-11-15 13:25:00 475846浏览量 回答数 24

27

回答

阿里云开源软件镜像站点上线啦!!

qilu 2014-01-06 18:14:06 96133浏览量 回答数 27

21

回答

OSS新手视频教程!

聚小编 2013-01-14 18:09:51 58316浏览量 回答数 21

14

回答

对象存储oss【问答合集】

我是管理员 2018-08-03 14:54:02 67761浏览量 回答数 14

18

回答

MaxCompute百问集锦(持续更新20171011)

隐林 2017-06-30 18:30:36 51494浏览量 回答数 18
+关注
5
文章
5115
问答
问答排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载