日期:2014-05-20  浏览次数:20845 次

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