Sobes.tech
Junior — Middle

Quelle est la différence entre les méthodes orElse et orElseGet en Java, et quelles sont leurs particularités d'utilisation?

sobes.tech IA

Réponse de l'IA

En Java, les méthodes orElse et orElseGet sont utilisées avec la classe Optional pour définir une valeur par défaut si l'objet est absent.

  • orElse(T other) — accepte une valeur par défaut qui est calculée immédiatement lors de l'appel de la méthode, indépendamment de la présence ou non d'une valeur dans l'Optional.
  • orElseGet(Supplier<? extends T> other) — accepte un fournisseur (fonction) qui est appelé seulement si la valeur est absente, c'est-à-dire que le calcul de la valeur est différé jusqu'à ce que cela soit nécessaire.

Caractéristiques d'utilisation:

  • Si le calcul de la valeur par défaut est coûteux ou a des effets secondaires, il est préférable d'utiliser orElseGet pour éviter des coûts inutiles.
  • Si la valeur est simple et rapide, on peut utiliser orElse.

Exemple:

Optional<String> opt = Optional.empty();

// orElse calcule toujours "default"
String result1 = opt.orElse(getDefault());

// orElseGet appelle getDefault() uniquement si opt est vide
String result2 = opt.orElseGet(() -> getDefault());

public String getDefault() {
    System.out.println("Calcul de la valeur par défaut");
    return "default";
}