1

ファイルを読み取り、結果を配列リストに収集する関数があります。配列リストは次のようになります(データ)

[12、アダム、1993、1234、ボブ、1992]

次に、これらの詳細を患者と呼ばれる新しいオブジェクトにロードする必要があります。これは、個別の配列リスト項目をそれぞれの患者に配置するための現在の方法ですが、String String Intを渡すというエラーが発生し続け、Stringである必要があります。

sはこのように見えます

12、アダム、1993

そしてこれがコードです

public void loadPatients()throws Exception
{
    ArrayList<String> data = IO_Support.readData("PatientData.txt");

    System.out.println(data);
    for(String s : data)
    {
        Sytem.out.println(s);
        patientList.add(new Patient(s));
    } 
}

配列リストの結果を文字列にプッシュして患者オブジェクトに渡す方法はありますか、それとも別の方法を使用して文字列の結果を分割する必要がありますか?

読み取りデータは次のようになります

public static ArrayList<String> readData(String fileName) throws Exception
{
    ArrayList<String> data = new ArrayList<String>();
    BufferedReader in = new BufferedReader(new FileReader(fileName));

    String temp = in.readLine(); 
    while (temp != null)
    {
        data.add(temp);
        temp = in.readLine();   
    }
    in.close();
    return data;
}
4

1 に答える 1

1
while (temp != null)
{
    temp = in.readLine();   
}

まず、入力をArrayListに追加することはありません。このwhileループは意味がありません。ユーザー入力を読み取り、あらゆる場面でそれを飲み込むだけです。

さらに、あなたの例外を見た後、あなたが使用していることを確認してください。そこに1-arg constructorはありません。クラスにPatient classのみあります0-arg constructor。実際にそれらを使用する必要があります。2-arg constructorPatient

メソッド内のこのコードを参照してください。コンパイルするには、Patientクラスに1引数のコンストラクターloadPatientを追加する必要があります。

patientList.add(**new Patient(s)**); --> Will not work

したがって、Patientクラスに次を追加します。-

public Patient(String s) {
    this.s = s;
}

this.ss渡したものを格納するインスタンス変数です。

于 2012-10-07T01:24:49.190 に答える