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

如何解决遍历Salesperson数组调用getID()时的NullPointerException?

解决数组遍历中的NullPointerException问题

嘿,我完全懂你踩的这个坑!你用new Salesperson[20]初始化数组时,其实只是创建了一个能装20个Salesperson对象的空容器,数组里的每一个元素默认都是null——就像你买了一排空柜子,还没往里面放东西就伸手去掏,不出错才怪呢!

直接修复方案

在调用getID()方法之前,先检查当前数组元素是不是null,用短路逻辑与&&来避免空指针触发:

for(i = 0; i < staffList.length; i++) {
    // 短路&&会保证:如果staffList[i]是null,后面的getID()就不会执行
    if(staffList[i] != null && staffList[i].getID().equals(idNum)) {
        duplicateID = true;
        // 找到重复ID后直接跳出循环,不用遍历剩余元素,提升效率
        break;
    }
}

额外的严谨性优化

如果你还担心用户输入的idNum本身是null,可以再加一层判断,避免调用equals()时触发空指针:

for(i = 0; i < staffList.length; i++) {
    if(idNum != null && staffList[i] != null && staffList[i].getID().equals(idNum)) {
        duplicateID = true;
        break;
    }
}

补个小知识点

Java里对象数组和基本类型数组不一样:基本类型数组初始化后会给每个元素赋默认值(比如int数组默认是0),但对象数组的默认值全是null,必须手动创建new Salesperson()实例并赋值给数组元素后,才能安全调用对象的方法哦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.12 04:15:09