Java 检查数组是否为空,但不为空

Java 检查数组是否为空,但不为空,java,arrays,Java,Arrays,我有一个对象数组(Object[]array),我想检查它是否为空,但如果NPE或任何其他异常为空,则快速失败 我知道我可以做以下检查 array.length == 0 但例如,如果出现字符串或集合,则不建议使用IntelliJ,IntelliJ甚至会检查: 使用0文本报告任何.size()或.length()比较,该文本可替换为调用.isEmpty() 数组的.isEmpty()是否有替代品 有,但它也检查null,而我希望避免这种情况。最简单的方法是自己编写这样一个方法。这将是相当微不足

我有一个对象数组(
Object[]array
),我想检查它是否为空,但如果NPE或任何其他异常为空,则快速失败

我知道我可以做以下检查

array.length == 0
但例如,如果出现
字符串
或集合,则不建议使用IntelliJ,IntelliJ甚至会检查:

使用0文本报告任何
.size()
.length()
比较,该文本可替换为调用
.isEmpty()

数组的
.isEmpty()
是否有替代品


有,但它也检查
null
,而我希望避免这种情况。

最简单的方法是自己编写这样一个方法。这将是相当微不足道的。类似于下面的内容

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最可能的部分原因是允许轻松测试数组是否为空,这是一种相对常见的需要,但您不想这样做。

因为
.size()
是一种方法,它的实现是隐藏的。而且您无法确定此方法是否已优化(例如,有些集合可能会在每次调用
.size()
方法时枚举项)。这就是为什么计算集合的
.size()
可能很昂贵的原因。同时,
.isEmpty()
可以检查集合中是否至少有一项,并返回结果

但是
.length
只是一个字段。它什么也不做,只返回一个值。没有计算。此字段仅存储具有固定大小的数组的长度


我相信
.size()
.length
是完全不同的东西,在这种情况下,它们不能与集合和数组进行比较。

自己编写所需的方法会很简单。那么java.lang中的getLength()呢。ObjectString和collections是对象,因此isEmpty()是有意义的。任何东西的数组,甚至是对象的数组,就是数组。它不包含“smarts”,如果您需要smarts,您需要自己添加它-它确实使它们变得超轻。@Jesper在SOuse
array.length==0
上提问一定很有趣,并且忽略intellijs无用的提示,因为isEmpty()显然不是您想要的。确保首先检查null为什么抛出自己的NullPointerException?只需执行
返回array.length==0
。而且ArrayUtils不是本地人Java@cricket_007这将是一种方法。我不知道op想做什么。但我会把它作为一个建议添加到答案中,作为一种可能的方法。谢谢你的意见!返回
ArrayUtils.isEmpty(array)
是返回
array.length==0
的一种非常迂回的方法。我宁愿修正IntelliJ关于什么是好的什么是坏的想法,也不愿使用
ArrayUtils
来完成这项任务