8
votes

Java équivaut à () Commander

Si j'essaie de faire un .equals () code> sur une chaîne nulle en Java, une exception de pointeur nulle sera lancée. Je me demande, si j'essaie de comparer si une chaîne est égale à une chaîne constante, puis-je faire ce qui suit:

MY_CONSTANT_STRING.equals(aStringVariable)


0 commentaires

6 Réponses :



5
votes

Qu'est-ce que vous avez, c'est bien. Il est même possible d'utiliser un littéral à chaîne.

if( (variable != null) && variable.equals("value") ) {
    ...


1 commentaires

Les parenthèses autour de la variable! = NULL sont facultatifs Si vous souhaitez réduire le fouillis.



6
votes

est-ce juste un code très médiocre?

Non, c'est la façon dont de nombreuses personnes codiraient la déclaration pour éviter les NPE.


0 commentaires

0
votes

Nope, il est généralement fait pour éviter les NPE. Cependant, je préfère généralement faire une vérification explicite pour NULL.


0 commentaires

1
votes

Je garderais le code "constants.equals (possiblenull)" sans le test NULL uniquement s'il s'agit d'une condition normale que la variable pourrait être null - par exemple parce qu'elle vient de sortir d'une carte de propriété.

Vous pouvez vous échapper sans vérifier NULL en instance de chèques - comme: xxx

mais si vous ne vous attendiez pas vraiment null, vous devez vérifier explicitement cela dans un si -Test et le gérer de manière appropriée. Il est généralement préférable d'attraper des erreurs de données tôt auparavant plutôt que plus tard.


0 commentaires

0
votes

Si vous êtes préoccupé par la qualité de votre code, écrivez une classe d'assistance qui prend soin du test d'égalité: xxx

puis utilisez-le comme ceci: xxx

Votre soi-disant constante pourrait arrêter d'être constante. Il peut être lu dans un fichier de configuration quelque temps à l'avenir.


2 commentaires

Java 7 a une méthode d'assistance intégrée java.util.Object.equals (..) qui fait exactement ceci.


Si (o1 == null && o2 == null) retourne vrai; devrait simplement être: si (O1 == O2) retourne vrai;