1. ホーム
  2. java

[解決済み] ステートメント lambda は式 lambda に置き換えることができます。

2022-02-12 17:10:58

質問

Optional機能を使ってユーザーと招待状の検証を行っています。

@DeleteMapping("/friends/{username}")
public
HttpEntity<Boolean> removeFriend(
        @ApiParam(value = "The user's name", required = true) @PathVariable String username
) {
    Long fromId = authorizationService.getUserId();

    return userService.findByUsername(username)
            .map(user -> {
                 return friendshipService.findFriendship(fromId, user.getId())
                        .map(friendship -> {
                            friendshipService.removeFriendship(friendship);

                            friendship.setToId(friendship.getFromId());
                            friendship.setFromId(friendship.getToId());

                            friendshipService.removeFriendship(friendship);

                            return ResponseEntity.ok(true);
                        }).orElseGet(() -> ResponseEntity.notFound().build());
            }).orElseThrow(() -> new ResourceNotFoundException("User not found"));

しかし IntelliJ が私のグレーを彩っている return を削除すると return がないことを強調しています。 return .

どなたか、その仕組みと内容を説明していただけませんか?

解決方法は?

あなたの 文のラムダ

param -> { return expression; }

に変更することができます。 式ラムダ :

param -> expression

シンプルでしょう?ちなみに、中括弧とセミコロンは削除する必要があります。