Bonjour,
J'utilise Spring boot pour un projet web ou il servira de back et j'ai un problème.

Je voudrais tester si mon optionnal est null ou vide.
J'ai commencé comme ça :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
@GetMapping("/user/{id}")
	public ResponseEntity<User> getUserById(@PathVariable Long id) {
		return Optional.ofNullable(userService.findUserById(id)).map(user -> {
			return ResponseEntity.ok(user.get());
		}).orElseGet(() -> ResponseEntity.notFound().build());
	}
Mais même si je teste la nullité de l'optionnal grâce à Optional.ofNullable, si celui-ci est vide il passe quand même dans la map et créer une exception avec le "user.get()". Je sais qu'il existe d'autres moyens avec le ispresent , ifpresent ... mais je voulais éviter de faire un "if - else". Le but de cette question et simplement de savoir si il y a un autre moyen que le basique if-else.

Connaissez-vous un moyen de réussir ceci ?
J'ai essayé comme ça aussi :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
@GetMapping("/user/{id}")
	public ResponseEntity<User> getUserById(@PathVariable Long id) {
		return Optional.ofNullable(userService.findUserById(id)).ifPresentOrElse(user -> ResponseEntity.ok(user.get()),
				() -> ResponseEntity.notFound().build());
	}
Mais ifPresentOrElse a un retour à void donc ....

Preneur d'idée, je ne sais pas si c'est réalisable