zoukankan      html  css  js  c++  java
  • 增强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                     
  • 相关阅读:
    cf-779E (拆位)
    石子游戏 (SG函数)
    [POI2017] Flappy Bird (思维题)
    Alice and Bob (SG函数)
    Red is good (DP)
    CodeVS-1669 (背包问题)
    GalaxyOJ-468 (LCA)
    BZOJ-1191 (二分图匹配)
    Reinforcement Learning 笔记(4)
    Reinforcement Learning 笔记(3)
  • 原文地址:https://www.cnblogs.com/lidar/p/12966892.html
Copyright © 2011-2022 走看看