Java 开发过程中发现的一个小问题java.lang.NullPointerException

if (detailtable.length > 0) {
	DetailTable dt = detailtable[i];// 针对每一个明细表遍历
		Row[] s = dt.getRow();// 获取每一个明细表的行数组
		log.info("明细表长度detail table length:"+s.length);
          Common_OA_Detail[]  detailsobject=new Common_OA_Detail[s.length];//根据行数的多少实例化对象,这就是问题的来源。
                for (int j = 0; j < s.length; j++) {
		   Row r = s[j];// 针对每一行
		   tab_details[j].setITMNO(Integer.toString(j)); //设置序列号
		   tab_details[j].setBSCHL("40");// 借帐
		   tab_details[j].setFYLB("差旅费用");// 费用类别
	         // 获取明细表中的报销总类别0-小类别1-总账代码2-报销金额3-成本中心4-内部订单5
		   titlewenben = common.getDeptname() + common.getOaname() + "报销" + "费用";
		   detailsobject[j].setZzcode(selectname);// 获取明细表的总账代码
		   tab_details[j].setSGTXT(titlewenben);
		}
}

问题的原因在于:

Common_OA_Detail[]  detailsobject=new Common_OA_Detail[s.length];//根据行数的多少实例化对象,这就是问题的来源。

 我虽然声明了detailobject 为数组类型,并且实例化了。但是我没有实例化这个数组的元素 对象 Common_OA_Detail,然后通过对象来对数组赋值。如果像下面这样:

detailsobject[j].setZzcode(selectname);// 获取明细表的总账代码

这样就会报错。

正确的应该是先实例化对象,然后将对象赋值到数组里面。

Common_OA_Detail c_o_d=new Common_OA_Detail();
c_o_d.set[...]=""

因为这已经不是基本类型了,而是对象了,所以不能像基本类型那样赋值

转载于:https://my.oschina.net/u/2308739/blog/407409

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值