J'apprends sur Java wrapper en option, pour le faire, je suis à lire ce qui suit tutoriel
mais j'ai une question simple qui est sans réponse dans l'article: dans l' article 25: Évitez d' utiliser des opérations Identité-sensibles sur Optional ils sont à mentionner JAMAIS utiliser un objet en option d'une manière synchronisée comme ceci:
Optional<Product> product = Optional.of(new Product());
synchronized(product) {
...
}
mais il n'y a pas d'explication pourquoi, alors s'il vous plaît ne quelqu'un ici me expliquer pourquoi il en est une mauvaise pratique ???
Car
[catégories fondées sur des valeurs] sont librement interchangeables lorsque égaux, ce qui signifie que interchangeant deux cas , x et y qui sont égales selon
equals()
l' une quelconque invocation de calcul ou méthode devrait produire aucun changement visible de comportement »
Source (Oracle)
Vous ne pouvez remplacer librement X et Y s'il y a un verrou intrinsèque sur l'un d'eux, car cela peut produire un changement de comportement.