Flutter中数组空值检查报错问题求助
通讯录电话号码空值检查报错解决方案
针对你在比对通讯录与电话号码数组时遇到的空值检查报错,给出以下具体修复方案:
先校验
phone数组本身是否为null:直接对null数组执行遍历或长度判断会触发空指针异常,需先做非空判断:if (phone != null && phone.length > 0) { // 执行后续的号码校验与比对逻辑 }逐个过滤数组中的无效号码:通讯录的无效联系人可能对应数组内的null或空白字符串,遍历过程中单独校验每个元素:
for (String number : phone) { // 同时排除null、空字符串和纯空格的无效号码 if (number != null && !number.trim().isEmpty()) { // 对有效号码执行比对操作 } }若使用Java 8及以上版本,可通过流式处理快速过滤有效号码:
import java.util.Arrays; import java.util.List; import java.util.Objects; import java.util.stream.Collectors; // 过滤出所有有效号码后再进行比对 List<String> validPhoneNumbers = Arrays.stream(phone) .filter(Objects::nonNull) .filter(num -> !num.trim().isEmpty()) .collect(Collectors.toList());额外注意:如果通讯录中的联系人对象本身可能为null,需先校验联系人对象非空,再获取电话号码属性:
for (Contact contact : contactList) { if (contact != null) { String contactPhone = contact.getPhone(); // 再对contactPhone执行空值检查 } }
内容的提问来源于stack exchange,提问作者Vedha
相关产品推荐
相关产品推荐

