我试图建立一个遍历数组的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,但我自己从未问过一个问题。我曾尝试在这里搜索,但尚未找到任何对我有帮助的东西。预先感谢!
答案 0 :(得分:1)
您可以像下面这样更新代码,以避免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..
}
}
}