Naviguer en toute sécurité dans les chaînes d'appels "Get" avec optionnel
Dans la programmation Java, il est courant de rencontrer des chaînes d'appels "get", tels que ce qui suit :
house.getFloor(0).getWall(WEST).getDoor().getDoorknob();
Pour éviter les NullPointerExceptions potentielles, les développeurs ont souvent recours à des vérifications nulles détaillées :
if (house != null &&& house.getFloor(0) &&& house.getFloor(0).getWall(WEST) != null &&& house.getFloor(0).getWall(WEST).getDoor() != null) ...
Cette approche devient encore plus lourde avec des chaînes d'appels plus longues. Existe-t-il une solution plus élégante ?
Oui, avec l'introduction du type facultatif par Java 8, la gestion des valeurs nulles dans les chaînes d'obtentions est devenue beaucoup plus facile.
Utilisation d'optionnel pour la gestion des valeurs nulles
&&&]Optional est une classe wrapper qui représente une valeur facultative. Il peut soit contenir une valeur non nulle, soit être vide. l'exemple suivant :Optional.ofNullable(house) .map(maison -> maison.getFloor(0)) .map(floorZero -> floorZero.getWall(OUEST)) .map(wallWest -> wallWest.getDoor()) .map(door -> wallWest.getDoor());Ce code crée une chaîne d'objets facultatifs, chacun représentant le résultat de l'appel get correspondant.Optional.ofNullable(house) .map(house -> house.getFloor(0)) .map(floorZero -> floorZero.getWall(WEST)) .map(wallWest -> wallWest.getDoor()) .map(door -> wallWest.getDoor());
Avantages de l'utilisation Facultatif
L'utilisation de Facultatif offre plusieurs avantages :
Contrôles nuls gérés automatiquement :Si vous ne parvenez pas à éviter enfreignant la loi de Déméter, l'utilisation d'Optional est une approche hautement recommandée pour naviguer en toute sécurité dans les chaînes d'appels « get ». Il fournit un moyen élégant et efficace de gérer les valeurs nulles, garantissant la robustesse et la fiabilité de votre code.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3