增強for循環賦值並且向list集合里添加元素,每個元素都一樣


增強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                     

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM