Ich mache die Benutzer- und Einladungsvalidierung mit der optionalen Funktion
@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"));
Allerdings färbt IntelliJ meine graue Rückgabe https://zapodaj.net/2f48b1a26c392.png.html .__ Wenn ich jedoch die Rücknahme entferne, wird mir klar, dass es keine Rückgabe https gibt : //zapodaj.net/37605f08165c9.png.html
Könnte jemand erklären, wie es funktioniert und worum geht es?
Ihre Aussage Lambda
param -> { return expression; }
kann in einen Ausdruck Lambda geändert werden:
param -> expression
Einfach ist es nicht? Beachten Sie, dass die geschweiften Klammern und das Semikolon entfernt werden müssen.
Manchmal fand ich es nützlich, das .__ zu verlassen. Klammern, wo sie sind, wenn der Codeblock lang genug ist (ich denke, er verbessert die Lesbarkeit)
In Android Studio können Sie die Warnung mit //noinspection CodeBlock2Expr
zu Beginn der Methode lokal deaktivieren, wie im folgenden Beispiel gezeigt
//noinspection CodeBlock2Expr
button.setOnClickListener((View v) -> {
//a long single method call...
});