ArrayList  panelNoList=new ArrayList();
         ArrayList  parentLotNoList=new ArrayList();
         panelNoList.add(this.lotNo);
         Properties parentPro=new Properties(); 
         parentPro=Lot.getParentLotNoByLot(conn,panelNoList,log);//根据panelNoList去找ParentLotNo
         
         for(int i=0;i<panelNoList.size();i++)
         {
         String panelNo=(String)panelNoList.get(i);
        String tempParentLotNo=parentPro.getProperty(panelNo);//取出panelNo对应的parentLotNo
          parentLotNoList.add(tempParentLotNo); 
          }     if(parentLotNoList==null || (parentLotNoList!=null &&parentLotNoList.size()==0 )){  //如果parentLotNo为空,则将panelNoList作为parentLotNo
   
          parentLotNoList=new ArrayList();
          parentLotNoList.add(this.lotNo);
         }   Lot.writeToR_LOT_PLOT(conn,biz,this.newLotNo,parentLotNoList,log);//将parentLotNo和对应的新lotNo写入表
我想请教一下,为什么parentLotNoList为空,系统并没有去执行if语句?导致将空的parentLotNo写入表而报错!是我写if语句的不对吗?writeToR_LOT_PLOT和getParentLotNoByLot这两个方法没问题,我已经测过了,请高手指教!!!!!!!

解决方案 »

  1.   

    public static void main(String[] args) {
            List l = new ArrayList();
            l.add(null);
            System.out.println(l.size());
    }
    这个输出结果是1.
    panelNoList.add(this.lotNo); 这句中的this.lotNo为null。
      

  2.   

    sorry,上一帖下结论太草率,希望不会误导你。
    调试一下parentLotNoList中是不是有 parentLotNoList.add(null);的情况吧。
      

  3.   

    不是啊,如果我在if语句下加一句
    System.out.println("******************");
    这句话没执行,我的this.lotNo不为空的啊
      

  4.   

    parentLotNoList不会为空啊,当然不会执行
    if(parentLotNoList==null   ¦ ¦   (parentLotNoList!=null   &&parentLotNoList.size()==0   ))
    的了
      

  5.   

    我在if语句之前已经写了
    System.out.println("@@@@@@@@@parentLotNoList "+parentLotNoList);
    输出结果是@@@@@@@@@parentLotNoList[null] 啊?
    我也晕了,我觉得我的语句没有错啊
      

  6.   

     你的arrayList不办空,但你存在arrayList里面的对像是为空的。所以要报错的。要判断对像不办空的情况。
      

  7.   

    输出结果是@@@@@@@@@parentLotNoList[null] 
    这个是parentLotNoList中有元素,元素值为null
      

  8.   

    String   tempParentLotNo=parentPro.getProperty(panelNo);//取出panelNo对应的parentLotNo 
    parentLotNoList.add(tempParentLotNo); 执行parentLotNoList.add的时候,你不用对tempParentLotNo进行判断的吗