当前位置: 首页 > 知识库问答 >
问题:

使用IfPresentorese lamba函数[duplicate]时未接受的返回值

汪兴旺
2023-03-14

我似乎不知道为什么当我使用lambda时需要从方法返回一些东西时,我在IDE意外返回值上会出现这个错误。

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

}

非常感谢。

共有1个答案

巴博耘
2023-03-14

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

相反,您可以将maporelsetrow结合使用:

public Employee getEmployee(long id) {
    return repository.findById(id)
                     .map(service::buildEmployee)
                     .orElseThrow(ResourceNotFoundException::new);
}
 类似资料:
  • 问题内容: 我想了解为什么下面的代码片段无法编译。将函数接受为可能具有任何返回类型的函数参数的Go方法是什么? 播放:https://play.golang.org/p/CqbuEZGy12 我的解决方案基于Volker的答案: 播放:https://play.golang.org/p/waOGBZZwN7 问题答案: 你绊倒了围棋新人一个非常普遍的误解:空接口并 不能 意味着“任何类型”。确实不

  • 我的Alexa技能中有一个随机数函数,它使用Amazon.number插槽类型,如下所示的意图模式。 我得到用户想要使用的数字,并将它们分别放入Num1和Num2,如下我的函数所示。 然而,当我打印Num1和Num2时,它们都显示为[object object],这意味着我不能用它们进行任何计算,因为结果总是为NaN。 有没有办法修复这个问题,使Num1和Num2有数字值?

  • 问题内容: 我正在使用Postgresql 8.3,并具有以下简单功能,该功能会将a返回 给客户端 现在,我可以使用以下SQL命令来调用此函数并操纵返回的游标,但是游标名称是由PostgreSQL自动生成的 此外,如38.7.3.5中所述,显式地将游标名称声明为函数的输入参数 。返回游标。我可以声明自己的游标名称并使用此游标名称来操纵返回的游标,而不是为我自动生成的Postgresql吗?如果不是

  • 我有下面的函数,它可以正确地从响应中提取图像的前缀和后缀,并生成一个可变的结果,其中包含场馆图像的url。然而,当我返回结果时,我一直没有定义。这里出了什么问题?

  • 我有一系列函数,它们接收请求对象并返回Vavr。 如果任务已完成,则要么将包含一个Result对象,如果任务需要由另一个函数完成,则将包含一个修改后的Request对象。 我的想法是,我可以通过做这样的事情把它们联系在一起: 但是很明显不是一个东西,所以我最终在左侧有一个嵌套的Eithers。关于如何实现此功能有什么想法吗?我对替代库持开放态度。 编辑: 看起来应该这样做,但Intellij在第二

  • 问题内容: 我正在尝试获取返回值,但始终无法定义。 我不确定如何获取任何返回值并在其他地方使用它?我需要使用此返回值来与其他函数进行验证,但是它似乎在范围之内。 这是我的代码: 问题答案: 移动以下行: 进入回调: 如果希望返回某些内容,则还需要向其添加回调,以便可以使用它的返回值。例如,如果您希望这样做: 这将无法正常工作,因为内容的最终值将被异步检索。相反,您需要这样做: 您不能异步返回数据。