我正在构建一个加载数据库的对象列表。我运行了我的代码并意识到只有一个对象被持久化。
调试后,我意识到我的代码正在加载列表中的第一个对象,然后克隆列表中的其他对象。在最后的列表中,我得到了一个加载了相同数据的列表(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);
}
答案 0 :(得分:2)
您只是在循环中更新并添加相同的对象,在循环内移动对象创建,如:
while ((line = br.readLine()) != null) {
MyObject myObject= new MyObject();
......
}