我有一个对象数组(Object[] 数组
),我想检查它是否为空,但如果它为 null 并出现 NPE 或任何其他异常,则快速失败。
我知道我可以做以下检查
array.length == 0
但是例如对于 String
或集合,不推荐这样做,IntelliJ 甚至对此进行了检查:
Reports any
.size()
or.length()
comparisons with a 0 literal which can be replaced with a call to.isEmpty()
.
数组的 .isEmpty()
是否有任何替代品?
有ArrayUtils.html#isEmpty(java.lang.Object[]) ,但它也会检查 null
,而我想避免这种情况。
最佳答案
因为.size()
是方法,它的实现是隐藏的。而且您不能确定此方法是否已优化(有可能,例如,某些集合在您每次调用 .size()
方法时都会枚举项目)。这就是为什么计算集合的 .size()
可能 是昂贵的。同时,.isEmpty()
可以检查集合中是否至少有一项,并返回结果。
但是 .length
只是一个字段。它什么都不做,只是返回一个值。没有计算。该字段只存储固定大小的数组的长度。
我相信 .size()
和 .length
是完全不同的东西,在这种情况下,它们无法进行比较,集合和数组也是如此。
关于java - 检查数组是否为空,但不为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35433148/