0

私は自分がしていることの何が悪いのかわかりません。特定の日に訪れたすべての患者を出力することになっていますが、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)
4

1 に答える 1

1

参照ArrayList<Patient> patients変数はnull. ArrayList<Patient>現在、どのオブジェクトも指していません。

ArrayList<Patient> patients = null;

.add()そして、その参照で呼び出そうとすると、NullPointerExceptionnullがスローされます。

オブジェクトが必要な場合に、アプリケーションが null を使用しようとするとスローされます。

これらには以下が含まれます:

null オブジェクトのインスタンス メソッドの呼び出し。…………

ArrayList<Patient>オブジェクトを呼び出す前に、オブジェクトをインスタンス化する必要があります.add()

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

またはList<Patient>、参照型として使用することをお勧めします:

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