我写了这么段代码,死活找不出原因。还请大家帮帮忙,先谢了。
UserOffer []userOffers = new UserOffer[2];//自定义的数组
userOffers[0] = new UserOffer();
userOffers[1] = new UserOffer();
userOffers[0] = convertGamesUserOffer(accountManager.getUserOffer(new Long(sk.getOldUserOfferId())), userOffer,"U");//自己定义的一个方法返回UserOffer对象
Log.debug("userOffers[0].getUserOfferID = "+ userOffers[0].getUserOfferID());//测试
userOffers[1] = convertGamesUserOffer(guo, userOffer, "I");//自己定义的一个方法返回UserOffer对象
Log.debug("userOffers[1].getUserOfferID = "+ userOffers[1].getUserOfferID());//测试
Log.debug("object = "+ userOffers[0]);//测试
request.setUserOffers(0, userOffers[0]);//这一行报一个空指针的错误//request是有一个对象的实例//这是request对象的里的一个方法
public void setUserOffers(int i, ca.kidsnova.datasync.UserOffer _value) {
        this.userOffers[i] = _value;
    }

解决方案 »

  1.   

    你用断点调试下,看看出错的代码是不是出现在
    Log.debug("userOffers[0].getUserOfferID = "+ userOffers[0].getUserOfferID());//测试
    这一行,很有可能是你是
    userOffers[0] = convertGamesUserOffer(accountManager.getUserOffer(new Long(sk.getOldUserOfferId())), userOffer,"U");//自己定义的一个方法返回UserOffer对象
    代码返回了一个NULL值
      

  2.   

    你真的确认是那一句?那么我们测试看看Log.debug("request= "+ request);//测试request看看,我想你没有值哦!
    request.setUserOffers(0, userOffers[0]);
      

  3.   

    我也觉得奇怪,但确实这样的,我可以log出来,但后面就报空指针
    java.lang.NullPointerException
    at ca.kidsnova.datasync.OrderSyncRequest.setUserOffers(OrderSyncRequest.java:242)
    at com.vas.brd.jobs.SyncKnJob.setOrderSyncRequest(SyncKnJob.java:129)
    谢谢各位。。
      

  4.   

    userOffers[0] = convertGamesUserOffer(accountManager.getUserOffer(new Long(sk.getOldUserOfferId())), userOffer,"U");//自己定义的一个方法返回UserOffer对象userOffers[1] = convertGamesUserOffer(guo, userOffer, "I");//自己定义的一个方法返回UserOffer对象因为这个userOffer传入是一个对象所以错了。结贴