Comment vérifier null sur StringBuilder?
Je veux vérifier la valeur null ou vide spécifiquement dans mon code. Ne vide et null sont les mêmes pour StringBuilder
en Java?
Par exemple:
StringBuilder state = new StringBuilder();
StringBuilder err= new StringBuilder();
success = executeCommand(cmd, state, err);
/* here executeCommand() returns empty or null in state, I cant make changes in <br/> executeCommand() so can I check it in my code somehow for state, if its null or empty? */<br/>
if (state == null) { //do blabla1 }
if (state.tostring().equals("")) { //do blabla2 }
N'code ci-dessus, un sens ou comment dois-je le changer?
source d'informationauteur user1145280
Vous devez vous connecter pour publier un commentaire.
Non,
null
etempty
sont différentes pourStringBuilder
.&
En Java,
null
est un référence littérale. Si une variable estnull
puis ne se réfère pas à quoi que ce soit.Donc, si vous avez
StringBuilder s = null
ce qui signifie ques
est de typeStringBuilder
mais il ne se réfère pas à unStringBuilder
instance.Si vous avez un non-
null
de référence, alors vous êtes libre de les appeler méthodes sur la visée de l'objet. Dans leStringBuilder
classe, une telle méthode estlength()
. En fait, si vous étiez à l'appellength()
à l'aide d'unnull
de référence puis à la Java runtime jeter unNullPointerException
.Par conséquent, ce code est assez commun:
Il s'appuie sur le fait que l'évaluation de
||
est de gauche à droite et s'arrête une fois qu'il atteint la premièretrue
condition.Null veux dire, il n'y a aucun objet dans le tas pour que la variable de référence. Ce qui est commun à tous les objet java, pas spécifique à
StringBuilder
et Vide signifie,""
.Dans votre code, vous avez créé un objet StringBuilder, afin de vérifier la valeur null est redondant. Et, Vous pouvez vérifier vide en utilisant
isEmpty()
méthode de java Chaîne apiEt de la vérification de la valeur null est correct. Trouver la version corrigée ici
Votre deuxième
if
condition jeterNullPointerException
si lestate
est null. Doncif
devrait être imbriquéesif else
Pas.
empty
dire qu'ils n'ont pas de caractères dans le StringBuilder.null
signifie qu'il n'y a pas d'objet StringBuilder.Une variable n'est
null
si il a un type de référence (par exemple la Chaîne, StringBuilder, Ensemble, comme un thumbrule: tous les types) et il n'est pas encore initialisé ou a été explicitement définie ànull
.Le code ci-dessous peut vous aider,
Vous pouvez essayer comme ceci