Skip to main content

Command Palette

Search for a command to run...

Optional<T> en Java

Published
1 min readView as Markdown
  • En Java, la classe Optional fait partie du package java.util et est utilisée pour éviter les erreurs de type NullPointerException.

  • 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 retourner null, on doit systématiquement vérifier si la valeur retournée est null avant de l’utiliser, sinon on risque un NullPointerException

  • Avec 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é") );