Est-il possible pour split
de retourner un String[]
Nul? Je suis curieux car je veux essayer d'être aussi défensif que possible dans mon code sans avoir de contrôles inutiles. Le code est comme suit:
String[] parts = myString.split("\\w");
dois-je effectuer une vérification nulle avant d'utiliser parts
post fractionnement?
Il ne retourne jamais null. Vous devez toujours vérifier le javadoc de la méthode si vous n'êtes pas sûr. Par exemple String#split(String)
dit
Cette méthode fonctionne comme si en appelant la méthode
split
à deux arguments
... et String#split(String,int)
dit:
Si l'expression ne correspond à aucune partie de l'entrée, le tableau résultant n'a qu'un seul élément, à savoir cette chaîne.
À partir de Javadoc, vous pouvez également savoir quel type d'exceptions peut se produire et, surtout, pourquoi ces exceptions ont été levées. Une autre chose très importante à vérifier est de savoir si les classes sont thread-safe ou non.
Je vous recommande de télécharger le code source Java pour les moments où l'API n'est pas claire. Toutes les réponses ici vous donnent juste la réponse, mais vous devriez vraiment voir par vous-même. Vous pouvez télécharger le Java code source de ici (regardez près du bas de la page).
En suivant le code source, vous vous retrouverez à String[] Pattern.split(CharSequence input, int limit)
. La valeur de retour provient d'un ArrayList
non nul sur lequel toArray
est appelé. toArray
ne retourne pas null: en cas de liste vide, vous récupérez un tableau vide.
Donc à la fin, non, vous n'avez pas à vérifier la valeur null.
Non, vous n'avez pas besoin de vérifier la nullité des pièces.
La méthode Split appelle la méthode Patter.split qui fait cela au début de la méthode:
ArrayList<String> matchList = new ArrayList<String>();
Et à la fin, matchList.toArray () renvoie un tableau.
Donc pas besoin de tester les nulls.