增强for循环赋值并且向list集合里添加元素,list集合里每个对象元素都是最后添加集合的对象值
注意: AwardAndPenaltResp one = new AwardAndPenaltResp();的位置
正确的:
AwardAndPenaltVo queryParam = new AwardAndPenaltVo();
queryParam.setContNo(contLedger.getContNo());
List<AwardAndPenaltVo> list = awardAndPenaltMapper.getAwardAndPenalt(queryParam);
if (list != null && list.size() > 0) {
for (AwardAndPenaltVo temp : list) {
AwardAndPenaltResp one = new AwardAndPenaltResp();
BeanUtils.copyProperties(temp, one);
resp.add(one);
}
return R.data(resp, "奖扣罚查询成功");
}
错误的:
AwardAndPenaltVo queryParam = new AwardAndPenaltVo();
queryParam.setContNo(contLedger.getContNo());
List<AwardAndPenaltVo> list = awardAndPenaltMapper.getAwardAndPenalt(queryParam);
if (list != null && list.size() > 0) {
AwardAndPenaltResp one = new AwardAndPenaltResp();
for (AwardAndPenaltVo temp : list) {
BeanUtils.copyProperties(temp, one);
resp.add(one);
}
return R.data(resp, "奖扣罚查询成功");
}
产生原因:构造器写在了外面,每次add()添加的都是同一个元素,更改器方法改变的也是同一个元素的值,list集合最后每个元素都是最后一次赋值生成的值(可以看一下jvm创建对象的内存模型)