TL; DR使用ArrayUtils.nullToEmpty
從commons-lang
庫陣列
for(Object o : ArrayUtils.nullToEmpty(list)) {
// do whatever
}
此功能在commons-lang
庫,它包含在大多數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;
}
這是一樣的@OscarRyz給出了答案,但對於DRY口頭禪的緣故,我相信這是值得注意的。請參閱commons-lang項目頁面。這裏是nullToEmpty
API documentation和source
Maven的條目包括commons-lang
在您的項目,如果它是不是已經。
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.4</version>
</dependency>
不幸的是,commons-lang
沒有爲List
類型提供此功能。在這種情況下,您將不得不使用前面提到的輔助方法。
public static <E> List<E> nullToEmpty(List<E> list)
{
if(list == null || list.isEmpty())
{
return Collections.emptyList();
}
return list;
}
來源
2016-08-24 19:00:02
sdc
你可能最好拋出NPE。 'null'與空集合不同。 – 2010-02-12 08:35:39
@GregMattes 2月問題如何與10月問題重複? – Val 2013-09-09 08:47:58
只需要使用Collections.nonNullElementsIn(...):http://stackoverflow.com/a/34913556/5637185 – 2016-01-21 01:00:17