繁体   English   中英

检查该数组是否为空,但不是null

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM