2017-09-15 35 views
6

मैं उपयोगकर्ता और निमंत्रण सत्यापन वैकल्पिक सुविधावक्तव्य लैम्ब्डा अभिव्यक्ति लैम्ब्डा

@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

कोई बता सकता है कि यह कैसे काम करता है और यह सब क्या है?

उत्तर

17

के रूप में है कि के रूप में सरल:

अपने बयान लैम्ब्डा

user -> { return expression; } 

एक अभिव्यक्ति लैम्ब्डा को बदला जा सकता है:

user -> expression 

ध्यान दें, कि कर्ली कोष्ठक और अर्धविराम होने की जरूरत है हटा दिया।

+0

काम करता है। धन्यवाद। आपकी राय में यह https://pastebin.com/imEtjwHp या यह https://pastebin.com/gcaUMYQ4 लैम्ब्डा का बेहतर तरीका है? – sdfsd

+0

इस संदर्भ में कोई _better_ नहीं है। जैसा आप चाहें वैसा करो। लेकिन मेरे लिए, कोड स्निपेट दोनों पठनीय नहीं हैं। कोडिंग के लिए यह हमेशा पहला मानदंड होना चाहिए। – Seelenvirtuose

संबंधित मुद्दे