java - 如何绕过 array.equals(otherArray) 评估为 null?

标签 java arrays object nullpointerexception null

我正在尝试创建一个循环遍历数组的 for 循环,使用名为 getID() 的方法将用户输入与每个对象进行比较,该方法返回各个员工的存储的用户 ID。数据在运行之间不会保存,因此在第一个循环中,所有对象(我相信)应该为空。话虽如此,我在应该比较 getID() 检索的字符串和 userInput 字符串的行上收到了 nullPointerException。数组初始化如下:

Salesperson[] staffList;
staffList = new Salesperson[20];

这是有问题的循环,if 语句是抛出 NPE 的行:

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

这是 Salesperson 数组的类:

public class Salesperson
{
private String name;
private String idNum;
private double annSales;

//Various getter and setter methods here
}

如果我错过了什么,请告诉我。我过去曾使用过 Stack Overflow,但自己从未提出过问题。我尝试在这里搜索,但尚未找到任何对我有帮助的东西。提前致谢!

最佳答案

您可以像下面这样更新您的代码以避免 NPE。

    Salesperson[] staffList;
        staffList = new Salesperson[20];

        for(int i = 0; i < staffList.length; i++)
        {
            Salesperson salesPerson = staffList[i]; // staffList[i] i.e salesPerson = null.... null.getId throws NPE.

System.out.println("sales =" + sales); // sales = null
            if(sales != null) {
                if (sales.getId().equals(idNum)) {
                      //Do something..
                }
            }

        }

关于java - 如何绕过 array.equals(otherArray) 评估为 null?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55074601/

相关文章:

python - 使用 NumPy 查找条件为 True 的范围

javascript - 用定长多维数组填充Javascript对象

javascript - 如果用户关闭浏览器 (X) 而不是注销,如何结束 session

c# - 确定字符串是否在字符串数组中出现多次 (C#)

javascript - 根据key映射2个数组

带有对象和数组的 JavaScript 动态数组

JavaScript 循环对象以将数组附加到数组

java - 如何使用java在elasticsearch SearchQuery中指定 "start"文档? (跳过文件数量)

javascript - 我无法从数组中获取环境名称

java - 我如何处理将阿拉伯数字转换为罗马数字的家庭作业?