在使用java向列表添加多个值后,仅在迭代中重新修订最新记录

在使用java向列表添加多个值后,仅在迭代中重新修订最新记录,java,groovy,Java,Groovy,我正在尝试向列表中添加多条记录并进行迭代。但它只显示最新添加的记录 这是我的密码 List<ExportBean> exportBeans = new ArrayList<ExportBean>(); ExportBean exportBean = new ExportBean(); exportBean.setBooleanValue(true); exportBean.setKeyValue("PRE_APPROVED_OFFER"); exportBean.setS

我正在尝试向列表中添加多条记录并进行迭代。但它只显示最新添加的记录 这是我的密码

List<ExportBean> exportBeans = new ArrayList<ExportBean>();
ExportBean exportBean = new ExportBean();
exportBean.setBooleanValue(true);
exportBean.setKeyValue("PRE_APPROVED_OFFER");
exportBean.setStringValue("111");
exportBeans.add(exportBean);
exportBean.setBooleanValue(true);
exportBean.setKeyValue("PRE_APPROVED_OFFER1");
exportBean.setStringValue("222");
exportBeans.add(exportBean);
getLopRefNo(exportBeans);
它只显示

in function [ExportMessagingBean{stringValue='222', keyValue='PRE_APPROVED_OFFER1', exportBoolean=true}, ExportMessagingBean{stringValue='222', keyValue='PRE_APPROVED_OFFER1', exportBoolean=true}]

它不显示添加的第一条记录。它缺少什么吗?

这个问题与Groovy无关。在代码中,实际上并不是添加两个对象,而是添加一个对象并对其进行修改

List<ExportBean> exportBeans = new ArrayList<ExportBean>();
ExportBean exportBean = new ExportBean();
exportBean.setBooleanValue(true);
exportBean.setKeyValue("PRE_APPROVED_OFFER");
exportBean.setStringValue("111");

exportBeans.add(exportBean); // add object to list

exportBean.setBooleanValue(true);
exportBean.setKeyValue("PRE_APPROVED_OFFER1");
exportBean.setStringValue("222");

exportBeans.add(exportBean); // this time, the same reference is "added". This does not result in an addition (in fact, "add" will return false here

getLopRefNo(exportBeans);

这个问题与Groovy无关。在代码中,实际上并不是添加两个对象,而是添加一个对象并对其进行修改

List<ExportBean> exportBeans = new ArrayList<ExportBean>();
ExportBean exportBean = new ExportBean();
exportBean.setBooleanValue(true);
exportBean.setKeyValue("PRE_APPROVED_OFFER");
exportBean.setStringValue("111");

exportBeans.add(exportBean); // add object to list

exportBean.setBooleanValue(true);
exportBean.setKeyValue("PRE_APPROVED_OFFER1");
exportBean.setStringValue("222");

exportBeans.add(exportBean); // this time, the same reference is "added". This does not result in an addition (in fact, "add" will return false here

getLopRefNo(exportBeans);

您的代码中只有一个
ExportBean
对象(您只说了一次
newexportbean()
),因此您将同一对象添加到列表中两次。对bean上的
set
方法的第二组调用只会更新现有对象,而不是创建一个新对象。

代码中只有一个
ExportBean
对象(您只说了一次
newexportbean()
),因此您将同一对象添加到列表中两次。对bean上的
set
方法的第二组调用只是更新现有对象,而不是创建新对象。

得到了修复。谢谢你的邀请comment@Nizam没问题,请投票/接受有助于解决问题的答案。谢谢你的邀请comment@Nizam没问题,请投票/接受有用的答案
List<ExportBean> exportBeans = new ArrayList<ExportBean>();
ExportBean exportBean = new ExportBean();
exportBean.setBooleanValue(true);
exportBean.setKeyValue("PRE_APPROVED_OFFER");
exportBean.setStringValue("111");

exportBeans.add(exportBean); // add object to list

exportBean = new ExportBean(); //create new instance of ExportBean
exportBean.setBooleanValue(true);
exportBean.setKeyValue("PRE_APPROVED_OFFER1");
exportBean.setStringValue("222");

exportBeans.add(exportBean); // this new instance will be correctly added

getLopRefNo(exportBeans);