TL; DR Uso ArrayUtils.nullToEmpty
de la biblioteca commons-lang
para Arrays
for(Object o : ArrayUtils.nullToEmpty(list)) {
// do whatever
}
Esta funcionalidad existe en la biblioteca commons-lang
, que se incluye en la mayoría de los proyectos de Java.
// ArrayUtils.nullToEmpty source code
public static Object[] nullToEmpty(final Object[] array) {
if (isEmpty(array)) {
return EMPTY_OBJECT_ARRAY;
}
return array;
}
// ArrayUtils.isEmpty source code
public static boolean isEmpty(final Object[] array) {
return array == null || array.length == 0;
}
Esto es lo mismo que la respuesta dada por @OscarRyz, pero en aras de la DRY mantra, yo creo que es digno de mención. Consulte la página del proyecto commons-lang. Aquí está la entrada Maven nullToEmpty
API documentation y source
incluir commons-lang
en su proyecto si no lo está ya.
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.4</version>
</dependency>
Desafortunadamente, commons-lang
no proporciona esta funcionalidad para List
tipos. En este caso, debería usar un método auxiliar como se mencionó anteriormente.
public static <E> List<E> nullToEmpty(List<E> list)
{
if(list == null || list.isEmpty())
{
return Collections.emptyList();
}
return list;
}
Usted es probablemente mejor de lanzar una NPE. 'null' no es lo mismo que una colección vacía. –
@GregMattes ¿Cómo la pregunta de febrero es un duplicado de la pregunta de octubre? – Val
Solo necesito usar Collections.nonNullElementsIn (...): http://stackoverflow.com/a/34913556/5637185 –