Es posible que Java String.split pueda devolver una cadena nula

¿Es posible que la split devuelva una String[] nula String[] ? Tengo curiosidad porque quiero intentar estar lo más a la defensiva posible en mi código sin tener que realizar comprobaciones innecesarias. El código es el siguiente:

 String[] parts = myString.split("\\w"); 

¿Debo realizar una verificación nula antes de usar la división de parts ?

Nunca vuelve nulo. Siempre debe comprobar el javadoc del método si no está seguro. Por ejemplo, String#split(String) dice

Este método funciona como si invocara el método de split dos argumentos

… y String#split(String,int) dice:

Si la expresión no coincide con ninguna parte de la entrada, la matriz resultante tiene solo un elemento, a saber, esta cadena.

Desde Javadoc también puede averiguar qué tipo de excepciones pueden ocurrir y, lo que es más importante, por qué se lanzaron esas excepciones. También una cosa muy importante para comprobar es si las clases son seguras para subprocesos o no.

Le recomiendo que descargue el código fuente de Java para los momentos en que la API no está clara. Todas las respuestas aquí solo te dicen la respuesta, pero deberías verlo por ti mismo. Puede descargar el código fuente de Java desde aquí (busque en la parte inferior de la página).

Al seguir el código fuente, terminará en String[] Pattern.split(CharSequence input, int limit) . El valor de retorno proviene de un ArrayList no nulo en el que se llama toArray . toArray no devuelve nulo: en el caso de una lista vacía, obtendrás una matriz vacía de nuevo.

Así que al final, no, no es necesario comprobar si hay un valor nulo.

No, no es necesario comprobar si hay nulo en las partes.

El método de división llama al método Patter.split que hace esto al principio del método:

ArrayList matchList = new ArrayList();

Y al final hace matchList.toArray () para devolver un Array.

Así que no hace falta probar de nulos.