ArrayList上加载对象的错误逻辑(该列表包含多个具有相同数据的对象)

时间:2018-04-08 00:19:09

标签: java arrays oop object arraylist

我正在构建一个加载数据库的对象列表。我运行了我的代码并意识到只有一个对象被持久化。

调试后,我意识到我的代码正在加载列表中的第一个对象,然后克隆列表中的其他对象。在最后的列表中,我得到了一个加载了相同数据的列表(arraylist完成了带有sabe数据的多个对象)。 我的代码。

...
SimpleDateFormat f = new SimpleDateFormat("yyyy-mm-dd HH:MM:SS");
ArrayList<MyObject> MyObjectList= new ArrayList<MyObject>();
MyObject myObject= new MyObject();
String line;

while ((line = br.readLine()) != null) {
            result = line.split("\\;");
            try {
                myObject.setDate(f.parse(result[0]));
            } catch (ParseException e) {
                e.printStackTrace();
            }
            myObject.setPar1(result[1]);
            myObject.setPar2(result[2]);
            myObject.setPar3(result[3]);
            myObject.setPar4(result[4]);

            myObjectList.add(myObject);

            loadMyObjectListToDatabase(myObjectList);
        }

1 个答案:

答案 0 :(得分:2)

您只是在循环中更新并添加相同的对象,在循环内移动对象创建,如:

while ((line = br.readLine()) != null) {
      MyObject myObject= new MyObject();
      ......
  }