You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何判断对象数组中是否包含空值或Null值(不依赖第三方库)

不依赖第三方库判断Object[]是否存在空值/Null的方法

下面是几种原生Java实现的方案,覆盖不同版本的Java环境:

1. 基础遍历法(兼容所有Java版本)

直接循环数组元素逐一判断,逻辑清晰易懂:

  • 仅检查数组中是否存在null元素:
boolean hasNull = false;
for (Object obj : result) {
    if (obj == null) {
        hasNull = true;
        break;
    }
}
// hasNull为true时,说明数组包含null元素
  • 同时检查null元素和String类型的空串(Integer、Date类型不存在非null的"空值",仅需判断null):
boolean hasNullOrEmpty = false;
for (Object obj : result) {
    if (obj == null) {
        hasNullOrEmpty = true;
        break;
    }
    // 针对String类型单独判断空串
    if (obj instanceof String && ((String) obj).isEmpty()) {
        hasNullOrEmpty = true;
        break;
    }
}
// hasNullOrEmpty为true时,说明数组包含null或空String

如果需要把空白字符串(比如" ")也视为空值,可将isEmpty()替换为trim().isEmpty()。

2. Java 8+ Stream API写法(更简洁)

利用Stream的anyMatch方法实现一行式判断,代码更紧凑:

  • 仅检查null元素:
import java.util.Arrays;

boolean hasNull = Arrays.stream(result).anyMatch(obj -> obj == null);
  • 检查null或空String:
import java.util.Arrays;

boolean hasNullOrEmpty = Arrays.stream(result).anyMatch(obj -> 
    obj == null || (obj instanceof String && ((String) obj).isEmpty())
);

同样,若需要忽略空白字符,调整为((String) obj).trim().isEmpty()即可。

补充说明

  • Integer、Date类型不存在"非null的空值":Integer要么是null,要么是有效数值;Date要么是null,要么是有效日期对象,无需额外判断。
  • 如果业务中还有其他需要判定为"空"的类型,可在判断逻辑中添加对应的instanceof分支。

内容的提问来源于stack exchange,提问作者Muti

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 09:05:22