我不知道我在做什么是错的。它应该打印在特定日期访问的所有患者,但它继续抛出空指针错误。当我调用printPatientsOnDate方法时会发生这种情况。
主/ UI类上的代码
public void printPatientsOnDate() throws ParseException
{
System.out.print("Enter the date(mm-dd-yyyy): ");
Date dt = new SimpleDateFormat("MM-dd-yyyy").parse(sc.nextLine());
for(Patient i : app.getPatientsOnSpecDate(dt))
{
System.out.println(i.getName());
}
}
诊所班的代码
public ArrayList<Patient> getPatientsOnSpecDate(Date date)
{
ArrayList<Patient> patients = null;
for(Patient i : patientList)
{
if(i.searchDates(date)!=null)
{
patients.add(i);
}
}
return patients;
}
空指针错误代码
Exception in thread "main" java.lang.NullPointerException
at pkg.Pagamutan.Clinic.UI.printPatientsOnDate(UI.java:81)
答案 0 :(得分:1)
您的ArrayList<Patient> patients
引用变量为null
。目前它并不指向任何ArrayList<Patient>
对象。
ArrayList<Patient> patients = null;
当您尝试在.add()
引用上调用null
时,它会抛出NullPointerException。
当应用程序在需要对象的情况下尝试使用null时抛出。
包括:
调用null对象的实例方法。 .............
您需要在调用ArrayList<Patient>
之前实例化.add()
对象。
ArrayList<Patient> patients = new ArrayList<Patient>();
或者更好地使用List<Patient>
作为参考类型:
List<Patient> patients = new ArrayList<Patient>();