Ich habe den folgenden Code:Chaining Lambda-Anrufe mit Strom und optional
userService.getUserWithAuthorityByLogin(principal.getName())
.map(user->userRepository.findAllByClient(user.getClient().getId()));
Verfahren findAllByClient zurückgeben List<User>
Typ. Die Kartenmethode gibt eine Optional<Object>
In meinem Fall könnte es (optional) eine Optional<List<User>>
zurückgeben. Die Idee, die ich kodieren möchte, besteht darin, einen Stream für diese optionale Liste zu verwenden. Ich möchte meine Anrufe verketten. Code in Java 8 Stil ist gut aussehend und weniger Zeilen Code.
Ich muss diese List<User>
verarbeiten, wenn es wirklich existiert (vorhanden). Wie kann ich meine Anrufe mit java8 api verketten: Ich möchte optional und Stream mischen.
Danke.
EDIT:
ich weiterhin ein bisschen weiter:
userService.getUserWithAuthorityByLogin(principal.getName())
.map(user->userRepository.findAllByClient(user.getClient().getId()).stream().forEach(user->
{
managedUserDTOs.add(new ManagedUserDTO(user));
}));
Sie den gesamten Prozess haben. Aber das kompiliert nicht auf Anweisung
managedUserDTOs.add(new ManagedUserDTO(user))
Ich möchte die Liste füllen und es am Ende zurückgeben.
EDIT2:
Die gesamte Wickelmethode:
/**
* GET /users -> get all users.
*/
@RequestMapping(value = "/user-liste",
method = RequestMethod.GET,
produces = MediaType.APPLICATION_JSON_VALUE)
@Timed
@Transactional(readOnly = true)
@Secured({AuthoritiesConstants.TC_ADMIN})
public ResponseEntity<List<ManagedUserDTO>> getUserListe(Principal principal)
throws URISyntaxException {
return new ResponseEntity<>(managedUserDTOs, HttpStatus.OK);
}
nicht sicher, ob ich die Idee Ihrer Frage kam, aber.. 'userService.getUserWithAuthorityByLogin (principal.getName()) .flatMap (user-> userRepository.findAllByClient (user.getClient() getId()) Strom()) foreach (); ' –
Aliaxander
ok Ich bearbeite den Originalbeitrag –
@FrancoisF Ich glaube, du suchst nach 'userService.getUserWithAuthorityByLogin (principal.getName()) .map (user-> userRepository .findAllByClient (user.getClient(). getId()). stream()) .map (benutzer-> VerwaltetesUserDTO :: neu) .collect (Collectors.toList()) ' –