Introduction :
Bien qu'il puisse sembler intuitif d'utiliser l'option facultative de Java 8 en tant qu'arguments de méthode pour gérer les paramètres facultatifs ou nullables, cela est généralement considéré comme une pratique sous-optimale. Cet article explore les raisons pour lesquelles cette recommandation est en place.
Pièges des arguments facultatifs :
1. Complexité du code :
L'utilisation d'options dans les arguments introduit une logique conditionnelle dans la méthode. Chaque argument facultatif nécessite des vérifications de nullité ou de présence, ce qui entraîne des branchements supplémentaires et une complexité de code.
2. Inefficacités du compilateur :
Les options représentent des wrappers pour les objets nullables, créant une surcharge inutile et coûtant plus cher que les paramètres nullables en termes de compilation.
3. Nullabilité facultative :
Contrairement aux arguments nullables, qui indiquent explicitement la possibilité de valeurs nulles, les options elles-mêmes peuvent être nulles. Cette incohérence peut entraîner des erreurs si des options nulles sont transmises par inadvertance.
4. Redondance :
Les types de retour facultatifs traduisent déjà l'absence potentielle de valeur. La duplication de ces informations dans les arguments de la méthode est redondante et peut rendre le code moins lisible.
Options alternatives :
Au lieu d'utiliser des options dans les arguments, envisagez ces alternatives :
1. Paramètres nullables :
Déclarez les paramètres comme nullables (par exemple, avec String p1, BigDecimal p2) et effectuez explicitement des vérifications nulles dans la méthode. C'est plus clair et plus efficace que d'utiliser les options.
2. Surcharge de méthode :
Créez des surcharges de méthodes distinctes pour différentes combinaisons d'arguments (par exemple, calculateSomething(), calculateSomething(String), calculateSomething(BigDecimal), calculateSomething(String, BigDecimal)). Cela fournit une interface plus intuitive et flexible.
Exemple :
Considérez l'exemple de code fourni dans la question. En utilisant des paramètres nullables et des vérifications nulles explicites, le code appelant se simplifierait en :
String p1 = otherObject.getP1().orElse(null); BigDecimal p2 = otherObject.getP2().orElse(null); int result = myObject.calculateSomething(p1, p2);
Conclusion :
Bien que Facultatif fournisse un moyen pratique de gérer les valeurs nullables en retour types, son utilisation comme arguments de méthode introduit de la complexité, de l’inefficacité et de la redondance. L'adoption de paramètres nullables ou la surcharge de méthodes offre une approche plus claire, efficace et maintenable pour gérer les paramètres d'entrée facultatifs ou nullables.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!