Je fais la validation des utilisateurs et des invitations à l'aide de la fonction optionnelle
@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"));
Cependant, IntelliJ colore ma déclaration grise https://zapodaj.net/2f48b1a26c392.png.html Mais lorsque je supprime la déclaration, je constate qu’il n’ya pas de retour https://zapodaj.net/37605f08165c9.png.html
Quelqu'un pourrait-il expliquer comment cela fonctionne et de quoi s'agit-il?
Votre statement lambda
param -> { return expression; }
peut être changé en expression lambda :
param -> expression
Simple, n'est ce pas? Notez que les accolades et le point-virgule doivent être supprimés.
Parfois, je trouvais utile de quitter le accolades où ils sont si le bloc de code est assez long (je pense que cela améliore la lisibilité)
Dans Android Studio, vous pouvez désactiver localement l'avertissement à l'aide de //noinspection CodeBlock2Expr
au début de la méthode, comme dans l'exemple ci-dessous.
//noinspection CodeBlock2Expr
button.setOnClickListener((View v) -> {
//a long single method call...
});