声明拉姆达可以表达拉姆达
问题描述:
我不使用可选设施声明拉姆达可以表达拉姆达
@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是着色我的灰色收益来代替 https://zapodaj.net/2f48b1a26c392.png.html 但是当我删除了回报,它突出了我没有回报https://zapodaj.net/37605f08165c9.png.html
有人可以解释它是如何工作的,它是什么一回事?
答
就这么简单:
你的陈述拉姆达
user -> { return expression; }
可以改变一个表达式的λ:
user -> expression
注意,即大括号和分号需除去。
作品。谢谢。您认为哪种方式更适合lambda https://pastebin.com/imEtjwHp或https://pastebin.com/gcaUMYQ4? – sdfsd
在这种情况下没有_better_。只要你喜欢就做。但对我而言,这两个代码片段都不可读。这应该始终是编码的第一个标准。 – Seelenvirtuose