首页 > 其他 > 详细

增强for循环赋值并且向list集合里添加元素,每个元素都一样

时间:2020-05-26 18:55:46      阅读:89      评论:0      收藏:0      [点我收藏+]

增强for循环赋值并且向list集合里添加元素,每个元素都一样

 

转载地址:https://www.jianshu.com/p/45c2105ed477

 

异常:增强for循环赋值并且向list集合里添加元素,每个元素都和最后赋值的一样

原因:构造器写在了外面,每次add()添加的都是同一个元素,更改器方法改变的也是同一个元素的值,list集合最后每个元素都是最后一次赋值生成的值


例如:
 1   OrderItem orderItem = new OrderItem();
 2 
 3 for (CartItem cartItem : cartItemList) {
 4 
 5        orderItem.setOrderItemId(CommonUtils.uuid());
 6 
 7        orderItem.setQuantity(cartItem.getQuantity());
 8 
 9     orderItem.setSubTotal(cartItem.getSubTotal());
10 
11     orderItem.setBook(cartItem.getBook());
12 
13     orderItem.setOrder(order);
14 
15 orderItemList.add(orderItem) ;
16 
17 }

解决方案:把构造器(new的对象)写在增强for循环里面

 1 for (CartItem cartItem : cartItemList) {
 2 
 3     OrderItem orderItem = new OrderItem();
 4 
 5                 orderItem.setOrderItemId(CommonUtils.uuid());
 6 
 7                 orderItem.setQuantity(cartItem.getQuantity());
 8 
 9                 orderItem.setSubTotal(cartItem.getSubTotal());
10 
11                 orderItem.setBook(cartItem.getBook());
12 
13                 orderItem.setOrder(order);
14 
15        orderItemList.add(orderItem) ;
16 
17 }
18 
19                     

 

增强for循环赋值并且向list集合里添加元素,每个元素都一样

原文:https://www.cnblogs.com/lidar/p/12966892.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!