Utilisez-vous StringUtils.EMPTY
au lieu de ""
?
Je veux dire soit comme valeur de retour, soit si vous définissez la valeur d'une variable String. Je ne veux pas dire pour la comparaison, parce que là on utilise StringUtils.isEmpty()
Utilisez-vous StringUtils.EMPTY
au lieu de ""
?
Je veux dire soit comme valeur de retour, soit si vous définissez la valeur d'une variable String. Je ne veux pas dire pour la comparaison, parce que là on utilise StringUtils.isEmpty()
Bien sûr que non. Vous pensez vraiment que "" n'est pas assez clair ?
Les constantes ont essentiellement 3 cas d'utilisation :
Aucune ne s'applique ici.
Je vois toujours un cas d'utilisation mineur et rare pour StringUtils.EMPTY
. Cela indique clairement que l'utilisation de la chaîne vide est voulue, et non pas une sorte de paresse ("Oh, ceci nécessite une chaîne, passons la chaîne de caractères "). ""
"). Si quelqu'un tombe sur ce morceau de code, il réfléchira à deux fois avant d'apporter des modifications. De même, si StringUtils.EMPTY
ont été définis comme votre propre variable, comme MyClass.EMPTY
pour apporter des modifications à "cette représentation du vide", il faudrait changer une ligne de code. Vous pourriez, par exemple, le changer en "<empty>"
au lieu de la chaîne vide ""
. Mais, je pense que cela va un peu trop loin.
J'ai enfin un argument sain à faire suivre aux fanatiques, au lieu de penser par moi-même à chaque fois. Merci.
En quoi le mot VIDE manque-t-il de sens ? EMPTY satisfait à la fois les points 1 et 2 de votre liste. Les développeurs expérimentés sous-estiment gravement le potentiel des développeurs juniors à gâcher quelque chose d'aussi simple que l'utilisation de "".
J'utilise StringUtils.EMPTY
pour cacher le littéral et aussi pour exprimer que return StringUtils.EMPTY
était pleinement attendu et devrait retourner une chaîne vide, ""
peut conduire à l'hypothèse que ""
peut être facilement changé en autre chose et que ce n'était peut-être qu'une erreur. Je pense que le EMPTY
est plus expressif.
Non, utilisez simplement ""
.
Le littéral ""
est clair comme du cristal. Il n'y a aucun malentendu sur ce qui a été dit. Je ne vois pas pourquoi vous auriez besoin d'une constante de classe pour cela. Je ne peux que supposer que cette constante est utilisée dans l'ensemble du paquet qui contient StringUtils
au lieu de ""
. Cela ne signifie pas pour autant que vous devez l'utiliser.
S'il y a une pierre sur le trottoir, tu n'as pas besoin de la jeter.
Je vais ajouter mes deux cents ici parce que je ne vois personne parler de String
stage et l'initialisation des classes :
String
dans les sources Java sont internées, ce qui rend les tout ""
et StringUtils.EMPTY
le site même objetStringUtils.EMPTY
peut initialiser StringUtils
car elle accède à son membre statique EMPTY
seulement s'il n'est pas déclaré final
(le JLS est précis sur ce point). Cependant, org.apache.commons.lang3.StringUtils.EMPTY
est final, donc il n'initialisera pas la classe.Voir un réponse à la question "String interning et sur Initialisation de la classe en se référant à la JLS 12.4.1 .
Je suis étonné de voir combien de personnes sont heureuses de supposer aveuglément que "" est effectivement une chaîne vide, et ne contient pas (accidentellement ?) l'un des merveilleux caractères invisibles et non espacés d'Unicode. Pour l'amour de tout ce qui est bon et décent, utilisez EMPTY chaque fois que vous le pouvez.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.