Conseils Java et la meilleure façon d'éviter NullPonintexception dans l'application Java
Dans une application Java, une nulponintexception (exception du pointeur nul) est la meilleure solution (problème). Dans le même temps, un pointeur nul est également la clé pour écrire du code en cours d'exécution robuste et fluide. L'expression «la prévention est meilleure que le traitement» s'applique également à la désagréable nulponintexception. En appliquant des techniques de codage défensives et en suivant les conventions entre plusieurs parties, vous pouvez éviter NullPointException dans une large mesure. Les conseils Java suivants peuvent minimiser les images! = code nul pour ce type de chèque. En tant que programmeur Java expérimenté, vous pouvez réaliser que certaines de ces technologies sont utilisées dans certains projets. Mais pour les étudiants de première année et les développeurs intermédiaires, c'est une excellente opportunité d'apprentissage.
Ce sont des techniques simples faciles à apprendre, mais elles sont vraiment importantes pour la qualité du code et la robustesse. D'après mon expérience, le premier tour a joué un grand rôle dans l'amélioration de la qualité du code.
1) Appelez Equal () et EqualSingNoreCase () sur la chaîne existante (String) au lieu d'objets inconnus
Habituellement, equals () est déjà appelé sur la chaîne non vide. Parce que la méthode égale () est symétrique, appeler a.equal () équivaut à appeler b.equal (), et c'est pourquoi beaucoup prêtent attention aux objets A et B, si un côté du vide provoquera un pointeur nul.
Objet UnknownObject = null; // Wrong Way - peut provoquer NullPointerExceptionIf (UnknownObject.Equals ("KnownObject")) {System.err.println ("Cela peut entraîner une manière nulpointerException si UnknownObject est Null");} // bon - Éviter NullPoInterEqual System.err.println ("Meilleur codage évité nullpointerException");}Il s'agit de l'astuce Java la plus importante pour éviter NullPointException, mais le résultat sera une énorme amélioration car l'égalité () est une méthode très courante.
2) Lorsque les deux renvoient le même résultat, la valeur de () est préférée au lieu de toString ()
Parce qu'un objet vide lancera un NullPointException lors de l'appel ToString (). Si nous pouvons obtenir la même valeur en appelant Value (), nous devons utiliser ValueOf (). Cela passera une valeur nulle. Surtout dans les cas de cours d'emballage comme Integer, Float, Double ou Bigdecimla.
Bigdecimal bd = getPrice (); System.out.println (string.valueof (bd)); // ne lance pas npesystem.out.println (bd.toString ()); // lève "Exception dans Thread" Main "java.lang.nullpointerException"
Si vous ne savez pas si l'objet que vous utilisez est vide, veuillez utiliser cette astuce Java
3) Utilisez la méthode NULL SAFE ou la bibliothèque de classe
Il existe de nombreux composants open source qui vous sont maintenant vérifiés. L'un des plus courants est StringUtils d'Apache. Vous pouvez utiliser stringUtils.isblank (), isNumberric (), iShitespace () et d'autres outils sans se soucier des méthodes NullPointException.
System.out.println (stringUtils.isempty (null)); System.out.println (stringUtils.isblank (null)); System.out.println (stringUtils.isnumeric (null));
Mais n'oubliez pas de lire la documentation sur les méthodes et classes de sécurité nulles avant de tirer des conclusions. Il s'agit d'un autre meilleur exercice Java, qui ne vous obligera pas à faire beaucoup d'efforts, mais vous fera beaucoup de progrès.
4) Évitez de retourner une collecte vide ou un tableau vide au lieu de retourner null de la méthode
Cette technique Java est également mentionnée dans "Effective Java" de Joshua Bloch. Ce livre est également une source d'amélioration des capacités de codage Java. En renvoyant une collection vide ou un tableau vide, il peut être déterminé que les appels de base comme size () et la longueur () ne lanceront pas de NullPointException. La classe de collection peut fournir une liste, un ensemble et une carte vides pratiques, (ceux-ci) ont des collections.empty_list, des collections.empty_set et des collections.empty_map et ceux-ci peuvent être utilisés (variables statiques).
Le code est le suivant;
public list getorders (client client) {list result = collections.empty_list; Résultat de retour; }De même, vous pouvez utiliser des collections.empty_list, collections.empty_set et collections.empty_map au lieu de retourner null.
5) Commentez avec @notnull et @nullable
Lors de l'écriture, vous pouvez définir une nullabilité de la convention, vous devez inciter à savoir si cette méthode est sûre en utilisant des commentaires comme @notnull et @nullable. Les compilateurs, IDE et autres outils modernes peuvent lire ce commentaire pour vous aider à effectuer un chèque vide ou vous dire si vous avez besoin d'un chèque vide. Intellijide et Findbugs soutiennent déjà cette annotation. Ces commentaires font également partie de JSR 305 (Note du traducteur: il peut être compris comme la norme de Java). En voyant @notnull et @Nullable, les programmeurs peuvent décider de faire le chèque vide. Soit dit en passant, c'est la nouvelle meilleure pratique pour les programmeurs Java, bien qu'il fasse un peu de temps pour s'adapter.
6) Suivez les conventions et définissez des valeurs par défaut raisonnables
Dans le champ Java, l'une des meilleures façons d'éviter les pointeurs nuls est de conclure des accords et de respecter. La plupart des NullPointExceptions se produisent car elles utilisent des informations incomplètes ou ne reçoivent pas toutes les dépendances pour créer des objets. Si vous n'autorisez pas à créer des objets incomplets et à nier de telles exigences, vous pouvez empêcher de nombreusesxceptions NullPointExpoint qui se produisent après un certain temps. Si l'objet est autorisé à être créé, vous devez définir une valeur par défaut raisonnable. Par exemple, un objet employé ne peut pas être créé sans les attributs d'ID et de nom, mais il peut avoir un numéro PGHone en option. Si l'employé n'a pas de numéro de téléphone, renvoyez un 0 au lieu de renvoyer une valeur nul. Mais ce type de traitement doit gérer très soigneusement les valeurs nulles plutôt que de vérifier les entrées illégales. Notez également que lors de la définition d'une valeur nulle ou non, rappelez à l'appelant de prendre la décision éclairée. Choisir ou accepter les valeurs nuls après l'échec est également une conception importante à laquelle vous devez faire attention.
7) Si vous utilisez une base de données pour stocker votre objet de domaine (objet Demain)
Par exemple: client, commandes, etc., vous devez alors définir certaines contraintes sur les valeurs nulles dans la base de données. Étant donné que la base de données peut nécessiter des données provenant de plusieurs sources, la vérification des valeurs nulles dans la base de données assurera l'intégrité des données. Garder les contraintes sur les valeurs nuls dans la base de données vous permettra également de réduire la vérification nul dans Java. Lorsque vous prenez un objet de la base de données, vous pouvez vous assurer que ces propriétés peuvent être vides et que ces propriétés ne peuvent pas être vides, ce qui minimisera le code pour ces vérifications vides.
8) Utilisez le mode objet vide
C'est une autre façon d'éviter NullPointException dans Java. Si une méthode renvoie un objet, ce que l'appelant veut itérer sur l'objet, quel appelant doit utiliser certaines méthodes similaires à Collection.Itorator () pour retourner Iterator. Si l'appelant n'a aucune des méthodes ci-dessus, il est possible que l'objet vide soit renvoyé au lieu de Null. Un objet vide est un objet spécial qui a des significations différentes dans différents contextes. Dans les cas où des méthodes comme celles-ci renvoient le contre-contre-type ou le type de connexion, l'objet vide (objet vide) à l'intérieur doit être utilisé au lieu de retourner vide.