如何判断对象数组中是否包含空值或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
相关产品推荐
相关产品推荐

