使用ArrayList时遇到问题,
在使用ArrayList时遇到一个比较奇怪的问题,下面是这段代码:
javacode:
//定义模拟出荷物CD信息List
ArrayList<shukkabutsuCd> shukkabutsuCdList = new ArrayList<shukkabutsuCd>();
shukkabutsuCd shukkabutsu = new shukkabutsuCd();
//情况1:出荷物情报中全部不为空
shukkabutsu.setShukkabutsuCd("S001");
shukkabutsu.setProdctCd("版本A");
shukkabutsu.setProdctVrsn("V1.1");
shukkabutsu.setHimmokuCd("品目A");
shukkabutsu.setHimmokuVrsn("V1.1");
shukkabutsu.setOsCd("A");
shukkabutsuCdList.add(shukkabutsu);
//情况2:出荷物情报中产品部分为空
shukkabutsu.setShukkabutsuCd("S002");
shukkabutsu.setProdctCd(null);
shukkabutsu.setProdctVrsn(null);
shukkabutsu.setHimmokuCd("品目A");
shukkabutsu.setHimmokuVrsn("V1.1");
shukkabutsu.setOsCd("A");
shukkabutsuCdList.add(shukkabutsu);
上面的javacode中,shukkabutsuCd为一个javabean;这段代码执行后shukkabutsuCdList中并没有出现我想得到的数据,而是出现了2条第二种情况的数据。
百思不得其解,不知道哪位可以解释下。
------解决方案--------------------
因为你操作的是同一个对象
//情况1:出荷物情报中全部不为空
shukkabutsu.setShukkabutsuCd("S001");
shukkabutsu.setProdctCd("版本A");
shukkabutsu.setProdctVrsn("V1.1");
shukkabutsu.setHimmokuCd("品目A");
shukkabutsu.setHimmokuVrsn("V1.1");
shukkabutsu.setOsCd("A");
shukkabutsuCdList.add(shukkabutsu);
//情况2:出荷物情报中产品部分为空
shukkabutsu = new shukkabutsuCd();//加上这句
shukkabutsu.setShukkabutsuCd("S002");
shukkabutsu.setProdctCd(null);
shukkabutsu.setProdctVrsn(null);
shukkabutsu.setHimmokuCd("品目A");
shukkabutsu.setHimmokuVrsn("V1.1");
shukkabutsu.setOsCd("A");
shukkabutsuCdList.add(shukkabutsu);