0

我不知道我在做什么有什么问题。它应该打印在特定日期访问的所有患者,但它不断抛出空指针错误。当我调用 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)
4

1 回答 1

1

您的ArrayList<Patient> patients参考变量是null. 目前它不指向任何ArrayList<Patient>对象。

ArrayList<Patient> patients = null;

当您尝试调用.add()null引用时,它会抛出NullPointerException

当应用程序在需要对象的情况下尝试使用 null 时引发。

这些包括:

调用空对象的实例方法。......

您需要ArrayList<Patient>在调用.add()它之前实例化一个对象。

ArrayList<Patient> patients = new ArrayList<Patient>();

或者更好地List<Patient>用作参考类型:

List<Patient> patients = new ArrayList<Patient>(); 
于 2013-07-28T08:07:11.943 回答