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 constructor2-arg constructorPatient课堂上..您确实需要使用它们。

请参阅方法中的此代码loadPatient。您需要在Patient 类中添加一个1-arg 构造函数来编译它。

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

因此,在您的 Patient 类中,添加:-

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

this.ss是要存储您传递的实例变量..

于 2012-10-07T01:24:49.190 回答