Optional<T> en Java
En Java, la classe
Optionalfait partie du packagejava.utilet est utilisée pour éviter les erreurs de typeNullPointerException.Elle permet d’encapsuler une valeur potentiellement absente et fournit des méthodes pour manipuler cette valeur de manière sécurisée.
Sans
Optional, lorsqu’une méthode peut retournernull, on doit systématiquement vérifier si la valeur retournée estnullavant de l’utiliser, sinon on risque unNullPointerExceptionAvec
Optional, on peut gérer proprement l’absence d’une valeur.
Exemple: Supposons qu’on cherche un utilisateur par son identifiant dans une base de données
Sans Optional
public User findUserById(int id){
User user=userRepository.findById(id); //ça peut retourner null
if(user!=null){
return user;
}else{
throw new RuntimeException("utilisateur non trouvé");
}
}
Avec Optional
public Optional<User> findUserById(int id){
return Optional.ofNullable(userRepository.findById(id));
}
// Utilisation
Optional<User> userOptional=findUserById(1);
User user=userOptional.orElseThrow( ()-> new RuntimeException("Utilisateur non trouvé") );
