Comment écrire instanceof avec Java 8?
Je suis nouveau dans Java 8 en Option. Je dois changer le code suivant :
@RequestMapping(value = "/account",
method = RequestMethod.GET,
produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<UserDTO> getAccount() {
return
Optional.ofNullable(userService.getUserWithAuthorities())
.map(user ->
new ResponseEntity<>(
new UserDTO(
user.getLogin(),
null,
user.getFirstName(),
user.getLastName(),
user.getEmail(),
"",
user.getLangKey(),
user.getAuthorities()
.stream()
.map(Authority::getName)
.collect(Collectors.toList())
),
HttpStatus.OK
)
)
.orElse(new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR));
}
Je veux créer un autre ResponseEntity selon l'instance de user
.
Comment je peux écrire l'équivalent du code suivant:
if(user instanceof Admin )
{
//my logic
}
else if(user instanceof NormalUser)
{
//my logic
}
Grâce
- oui j'ai corriger
Vous devez vous connecter pour publier un commentaire.
Vous serait de faire comme ceci :
Toutefois, si vous pouvez, évitez le
instanceof
de l'opérateur. Ajouter unisAdmin
méthode à votreUser
classe : en classe deAdmin
, il serait de retourtrue
et dans la classeNormalUser
, il serait de retourfalse
.La façon dont vous l'avez fait. Cependant, vous allez avoir à jeter
u
pour le type que vous souhaitez.