我想验证一个集合是否为空和null。谁能告诉我最好的做法。
目前,我正在检查如下:
if (null == sampleMap || sampleMap.isEmpty()) {
// do something
}
else {
// do something else
}
我想验证一个集合是否为空和null。谁能告诉我最好的做法。
目前,我正在检查如下:
if (null == sampleMap || sampleMap.isEmpty()) {
// do something
}
else {
// do something else
}
当前回答
你可以使用org.apache.commons.lang.Validate的"notEmpty"方法:
验证指定的参数集合既不是null也不是0的大小(没有元素);否则抛出异常。
其他回答
如果你使用Spring框架,那么你可以使用CollectionUtils检查集合(List, Array)和Map等。
if(CollectionUtils.isEmpty(...)) {...}
如果你在你的项目中使用Apache Commons Collections库,你可以使用CollectionUtils.isEmpty(…)和MapUtils.isEmpty(…)方法分别检查一个集合或映射是空的还是空的(即它们是“空安全的”)。
这些方法背后的代码或多或少是用户@icza在他的答案中所写的。
无论您做什么,请记住,您编写的代码越少,您需要测试的代码就越少,因为您的代码的复杂性会降低。
就我个人而言,我更喜欢使用空集合而不是空集合,并且让算法以一种对算法来说集合是否为空无关紧要的方式工作。
如果你需要检查是否为空,这就是方法。然而,如果你可以控制它,只要你可以,就返回空集合,然后只检查是否为空。
这个线程是关于c#的相同的事情,但原则同样适用于java。就像前面提到的,null应该只在
Null可能意味着更具体的东西; 你的API(合约)可能会强制你返回null。
我们将检查Collection对象是否为空。下面给出的所有方法都在org.apache.commons.collections4.CollectionUtils包中。
检查列表或集合对象的类型。
CollectionUtils.isEmpty(listObject);
CollectionUtils.isNotEmpty(listObject);
检查对象的映射类型。
MapUtils.isEmpty(mapObject);
MapUtils.isNotEmpty(mapObject);
所有方法的返回类型都是布尔型。