qq_36128558 2017-10-11 10:55 采纳率: 0%
浏览 9361

把对象的值放进list循环插入的时候会覆盖之前的数据

这是代码

   for (int i = 0; i < len; i++) {
        prpSitemKindd.setKindCode("0302");/*险别代码*/
        prpSitemKindd.setKindName(infoTpy.getInsuranceList().get(i).getInsuranceType());/*险别名称*/
        prpSitemKindd.setAmount(infoTpy.getInsuranceList().get(i).getAmount());/*保险金额*/
        prpSitemKindd.setPremium(infoTpy.getInsuranceList().get(i).getInsurancePremium());/*应缴保费*/
        prpSitemKindss.add(prpSitemKindd);
        }

第一次循环图片说明
第二次图片说明
第二次会把第一次的值覆盖 两个都是第二次的值
图片说明
得怎么写

  • 写回答

3条回答 默认 最新

  • zk_Kang 2017-10-12 02:30
    关注

    你第一次插入的时候prpSitemKindd中存放的是第一次的值,但是你没有放开prpSitemKindd,第二次插入的时候,prpSitemKindd为第二次存放的值,
    不论循环几次,prpSitemKindd中存放的都是最后一个数据值,所以就等于将最后一个数据值,循环插入进去。可以使用楼上的解决方法,不过对内存
    消耗过大,创建n个prpSitemKindd对象;建议将prpSitemKindd对象放在for循环外面定义,在for里面调用。例如:
    prpSitemKindd PrpSitemKindd=null;
    for里面prpSitemKindd = new PrpSitemKindd;这样调用,如果你用的是spring框架,可以使用注入方式,避免new。

    评论

报告相同问题?

悬赏问题

  • ¥15 使用C#,asp.net读取Excel文件并保存到Oracle数据库
  • ¥15 C# datagridview 单元格显示进度及值
  • ¥15 thinkphp6配合social login单点登录问题
  • ¥15 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配