我想验证一个集合是否为空和null。有人能告诉我最佳实践吗?目前,我正在检查以下内容:
null
if (null == sampleMap || sampleMap.isEmpty()) { // do something } else { // do something else }
ki1q1bka1#
如果您在项目中使用Apache Commons Collections库,您可以使用CollectionUtils.isEmpty(...)和MapUtils.isEmpty(...)方法,它们分别检查集合或Map是否为 empty 或 null(即它们是“null安全的”)。这些方法背后的代码或多或少是user @icza在他的答案中所写的。无论您做什么,请记住,随着代码复杂性的降低,您编写的代码越少,需要测试的代码就越少。
CollectionUtils.isEmpty(...)
MapUtils.isEmpty(...)
332nm8kg2#
这是检查它的最好方法,你可以写一个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(); }
iszxjhcz3#
如果你使用Spring框架,那么你可以使用CollectionUtils来检查集合(列表,数组)和Map等等。
CollectionUtils
if(CollectionUtils.isEmpty(...)) {...}
yqkkidmi4#
当你用Spring时你可以用
boolean isNullOrEmpty = org.springframework.util.ObjectUtils.isEmpty(obj);
其中obj是任意[Map、集合、数组、任意事物...]否则:代码为:
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; }
字符串的最佳值为:
boolean isNullOrEmpty = (str==null || str.trim().isEmpty());
6tqwzwtp5#
就我个人而言,我更喜欢使用空集合而不是null,并且让算法以这样一种方式工作:对于算法来说,集合是否为空并不重要。
ttygqcqt6#
我们将检查一个集合对象是否为空,null或not。下面给出的所有方法都存在于org.apache.commons.collections4.CollectionUtils包中。选中列表或设置集合对象的类型。
CollectionUtils.isEmpty(listObject); CollectionUtils.isNotEmpty(listObject);
选中对象的贴图类型。
MapUtils.isEmpty(mapObject); MapUtils.isNotEmpty(mapObject);
所有方法的返回类型都是boolean。
yzuktlbb7#
您可以使用org.apache.commons.lang.Validate的“notEmpty”方法:Validate.notEmpty(myCollection)-〉验证指定的参数集合既不为空也不为零(没有元素);否则抛出异常。
org.apache.commons.lang.Validate
Validate.notEmpty(myCollection)
flmtquvp8#
如果你需要检查空值,那就是方法,但是,如果你对此有控制权,只要你能,就返回空集合,以后只检查空值。This thread与C#的情况大致相同,但其原理同样适用于java。
8xiog9wr9#
对于包括Map使用在内的所有集合:isEmpty方法,在这些集合对象上,但是你必须在之前做一个null检查:
isEmpty
Map<String, String> map; ........ if(map!=null && !map.isEmpty()) ......
9条答案
按热度按时间ki1q1bka1#
如果您在项目中使用Apache Commons Collections库,您可以使用
CollectionUtils.isEmpty(...)
和MapUtils.isEmpty(...)
方法,它们分别检查集合或Map是否为 empty 或 null(即它们是“null安全的”)。这些方法背后的代码或多或少是user @icza在他的答案中所写的。
无论您做什么,请记住,随着代码复杂性的降低,您编写的代码越少,需要测试的代码就越少。
332nm8kg2#
这是检查它的最好方法,你可以写一个helper方法来做这件事:
iszxjhcz3#
如果你使用Spring框架,那么你可以使用
CollectionUtils
来检查集合(列表,数组)和Map等等。yqkkidmi4#
当你用Spring时你可以用
其中obj是任意[Map、集合、数组、任意事物...]
否则:代码为:
字符串的最佳值为:
6tqwzwtp5#
就我个人而言,我更喜欢使用空集合而不是
null
,并且让算法以这样一种方式工作:对于算法来说,集合是否为空并不重要。ttygqcqt6#
我们将检查一个集合对象是否为空,null或not。下面给出的所有方法都存在于org.apache.commons.collections4.CollectionUtils包中。
选中列表或设置集合对象的类型。
选中对象的贴图类型。
所有方法的返回类型都是boolean。
yzuktlbb7#
您可以使用
org.apache.commons.lang.Validate
的“notEmpty”方法:Validate.notEmpty(myCollection)
-〉验证指定的参数集合既不为空也不为零(没有元素);否则抛出异常。flmtquvp8#
如果你需要检查空值,那就是方法,但是,如果你对此有控制权,只要你能,就返回空集合,以后只检查空值。
This thread与C#的情况大致相同,但其原理同样适用于java。
8xiog9wr9#
对于包括Map使用在内的所有集合:
isEmpty
方法,在这些集合对象上,但是你必须在之前做一个null检查: