我想验证一个集合是否为空和null。谁能告诉我最好的做法。
目前,我正在检查如下:
if (null == sampleMap || sampleMap.isEmpty()) {
// do something
}
else {
// do something else
}
我想验证一个集合是否为空和null。谁能告诉我最好的做法。
目前,我正在检查如下:
if (null == sampleMap || sampleMap.isEmpty()) {
// do something
}
else {
// do something else
}
当前回答
如果你使用Spring框架,那么你可以使用CollectionUtils检查集合(List, Array)和Map等。
if(CollectionUtils.isEmpty(...)) {...}
其他回答
对于包括map在内的所有集合,使用:isEmpty方法,该方法存在于这些集合对象上。但你必须做一个空检查之前:
Map<String, String> map;
........
if(map!=null && !map.isEmpty())
......
我们将检查Collection对象是否为空。下面给出的所有方法都在org.apache.commons.collections4.CollectionUtils包中。
检查列表或集合对象的类型。
CollectionUtils.isEmpty(listObject);
CollectionUtils.isNotEmpty(listObject);
检查对象的映射类型。
MapUtils.isEmpty(mapObject);
MapUtils.isNotEmpty(mapObject);
所有方法的返回类型都是布尔型。
这是最好的检查方法。你可以写一个helper方法来做这件事:
public static boolean isNullOrEmpty( final Collection< ? > c ) {
return c == null || c.isEmpty();
}
public static boolean isNullOrEmpty( final Map< ?, ? > m ) {
return m == null || m.isEmpty();
}
当你使用弹簧时,你可以使用
boolean isNullOrEmpty = org.springframework.util.ObjectUtils.isEmpty(obj);
其中obj是任何[映射,集合,数组,aything…]
否则:代码为:
public static boolean isEmpty(Object[] array) {
return (array == null || array.length == 0);
}
public static boolean isEmpty(Object obj) {
if (obj == null) {
return true;
}
if (obj.getClass().isArray()) {
return Array.getLength(obj) == 0;
}
if (obj instanceof CharSequence) {
return ((CharSequence) obj).length() == 0;
}
if (obj instanceof Collection) {
return ((Collection) obj).isEmpty();
}
if (obj instanceof Map) {
return ((Map) obj).isEmpty();
}
// else
return false;
}
String的最佳格式是:
boolean isNullOrEmpty = (str==null || str.trim().isEmpty());
你可以使用org.apache.commons.lang.Validate的"notEmpty"方法:
验证指定的参数集合既不是null也不是0的大小(没有元素);否则抛出异常。