Null pointer access: The variable al can only be null at this location问题的解决

错误信息:Null Pointer Exception(空指针异常)

错误剖析:我从后台数据库查询得到的ArrayList<Book> al = findBySql(sql,Book.class);,然后用它再添加book空对象。运行程序时报错,浏览器报错空指针异常,eclipse显示黄色警告信息,也就是标题内容,中文翻译一下就是:“空指针入口:这变量al为空时才会出现这种情况”。所以当我们从后台数据去搜寻结果集为空的情况下,就会出现以上那种问题!

问题分析:al.add()下出现警告信息Null pointer access: The variable al can only be null at this location;刚开始是并注意到这个换色预警信号,一直想办法去处理它,通过变量替换,始终解决不掉;其实我也想到要去给它先弄个值进去,这样就不为空了,但是还是不行,不符合我的程序,那样就会更加复杂了,后来new一个ArrayList<Book>(),这样我就有对象了,也就不存在为空了,Java有时候就是这些地方挺耐磨的!往往就是一步之遥的差距,如果你不真正深刻的明白其中的原理,那是会专牛角尖的!

我获得变量ArrayList<Book> al=null,仅仅是后台数据库关于次信息为空,此时该变量仅仅在栈中,值为null,此时并没有指向对象中的任何对象,但是我却用它添加对象,这是不可能完成的。

解决方案:ArrayList<File> fList=null改为:ArrayList<Book> fList=new ArrayList<Book>();

总结: 注意看警告信息的文字,然后结合实际Java开发编程原理。原理很重要,不要依葫芦画瓢,知其然更有利于编程的工作!!!

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值