空指针错误java.lang.NullPointerException

(MyEclipse 10, java)

在调试程序时,报错:

java.lang.NullPointerException
	at com.fsti.becp.contract.action.CertificateAction.certificateBorList(CertificateAction.java:508)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)


错误信息的头两行,可以很清晰的看到,是在CerticatrAction文件的第508行,certificateBorlist方法中出来问题。以下是报错的语句:


		List<TCertificate> itemList = null;
		try{
			for(int i=0; i<borrowlist.length; i++) {
				Long certificateId = new Long(borrowlist[i]);
				TCertificate item = (TCertificate)certificateService.findById(TCertificate.class, certificateId);
				itemList.add(item);
			}
		} catch(Exception e) {e.printStackTrace();}

看标红的部分,即程序段的第一行,可以看出,之所以报空指针的错误,是因为没有对

List<TCertificate> itemList 

进行正确的实例化,所以,在后面想要往里面add内容是发生错误。

在这里,将这一句改为:

List<TCertificate> itemList = new ArrayList<TCertificate>();

就能解决这个问题。

是一个低级错误。记录引以为戒。

此外,写  try{}catch(){}  确实是必要的,即使预先无法预测是哪一类错误,无法再catch中提出解决方案,对于标定错误也很有帮助。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值