最近有时间,就整理整理自己做过的项目~这是某学院的档案管理系统。
话不多说,进入正题
错误代码
ArrayList arrayList = new ArrayList<Map<String, Object>>()
Map<String, Object> map = new HashMap<>();//原因就出在这里
List<Card> list = cardService.list();
for (Card c : list)
List<Field> fields = fieldService.listByIds(c.getCardFieldIds());
map.put("card",c);
map.put("fields",fields);
arrayList.add(map);
}
无论循环多少次,只有一个对象。正确做法是每次循环新建一个对象。
正确代码
ArrayList arrayList = new ArrayList<Map<String, Object>>();
List<Card> list = cardService.list();
for (Card c : list) {
Map<String, Object> map = new HashMap<>();//对象的新建应写在循环里面
List<Field> fields = fieldService.listByIds(c.getCardFieldIds());
map.put("card",c);
map.put("fields",fields);
arrayList.add(map);
}