首页 > 解决方案 > 如何在 lambda 中使用 return 关键字

问题描述

我有可选的。我想编写听起来如下的代码:如果存在对象,则将他从 Optional 转换为 Object 并与他一起执行剩余的代码。如果不存在,则返回代码 404。我尝试这样做但不工作。我不知道如何在这里使用 return 语句。

Object objectFromOptional = optional.stream()
                .findFirst().orElse(return ResponseEntity.notFound().build());

标签: javajava-8returnjava-streamoptional

解决方案


不需要return关键字,您可以使用:

Object objectFromOptional = optional.stream()
                .findFirst()
                .orElse(ResponseEntity.notFound().build());

编辑

OP评论后,建议的解决方案可以是:

private static final ResponseEntity<Object> notFound = ResponseEntity.notFound().build(); 
...
Object objectFromOptional = optional
                .orElse(notFound);

或者如评论中所述,您可以使用orElseGet这样的供应商:

Object objectFromOptional = optional
        .orElseGet(() -> ResponseEntity.notFound().build());

推荐阅读