"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment le type facultatif de Java peut-il simplifier la gestion des valeurs nulles dans les chaînes d'appels « Get » ?

Comment le type facultatif de Java peut-il simplifier la gestion des valeurs nulles dans les chaînes d'appels « Get » ?

Publié le 2024-11-08
Parcourir:771

How Can Java\'s Optional Type Simplify Handling Nulls in Chains of \

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 :
    Facultatif gère automatiquement les contrôles nuls, éliminant ainsi le besoin de contrôles nuls explicites. votre code.
  • Safe Get Calls :
  • Si l'un des appels get renvoie null, l'option facultative correspondante sera vide, empêchant les NullPointerExceptions.
  • API Fluent :
  • Les capacités de chaînage de Facultatif fournissent un moyen concis et lisible de gérer les valeurs nulles dans les chaînes de get.
  • Conclusion

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.

Dernier tutoriel Plus>

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