在使用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);