[英]Check that array is empty, but not null
我有一个对象数组( Object[] array
),我想检查它是否为空,但如果它与NPE或任何其他异常为空则快速失败。
我知道我可以做以下检查
array.length == 0
但是,例如在String
或集合的情况下,不建议练习,IntelliJ甚至检查:
报告任何
.size()
或.length()
与0文字的比较,可以用.isEmpty()
调用替换。
数组的.isEmpty()
是否有替换?
有ArrayUtils.html#isEmpty(java.lang.Object []) ,但它也检查null
,而我想避免这种情况。
因为.size()
是方法,所以它的实现是隐藏的。 并且您无法确定此方法是否已优化(有可能 ,某些集合,例如,每次调用.size()
方法时都会枚举项目)。 这就是为什么计算集合的.size()
可能会很昂贵。 同时, .isEmpty()
可以检查集合中是否至少有一个项目,并返回结果。
但.length
只是一个领域。 它什么都不做,只返回一个值。 没有计算。 该字段仅存储具有固定大小的数组的长度。
我相信.size()
和.length
是完全不同的东西,在这种情况下它们是无法比较的,以及集合和数组。
最简单的方法就是自己编写这样的方法。 这将是相当微不足道的。 像下面这样的东西
public boolean isArrayEmpty(Object[] array) {
if (array == null) {
//Throw nullpointer exception
//An easy of method of doing this would be accessing any array field (for example: array.length)
}
return (ArrayUtils.isEmpty(array));
}
话虽这么说,没有理由说array.length == 0
会有害。 这是最简单,最干净的方法,并且完全符合您的要求。 最有可能的部分原因是ArrayUtils.isEmpty
允许轻松测试数组是否为空或空,这是一个相对常见的需求,但您不希望这样做。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.