调用方法时出现空指针异常错误

时间:2013-07-28 08:06:15

标签: exception pointers null

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

1 个答案:

答案 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>();