今天下午看着视频教程,视频中写了一个分页插件。由于没有里面的Jar包,自己也不得不写了一个分页的类,来存放与分页有关的参数(当前页数、每页显示的记录条数等)。但写好测试却却一直报空指针异常!后来才发现是分页参数类中的私有成员变量没有实例化,所以调用其方法才会一直报空指针异常!如下图:
看着这里面的成员变量,明显的发现,是私有域pageView在定义时没有用new实例化。后台在定义并对pageView变量实例化后,问题圆满解决!
(花了我两三个小时呀。。。)
![空指针异常--NullPointException - 享受孤独 - 享受孤独的博客 空指针异常--NullPointException - 享受孤独 - 享受孤独的博客](http://img0.ph.126.net/BfLewI7zP8qXb8Kt6JjobA==/6631275573402492372.png)
![空指针异常--NullPointException - 享受孤独 - 享受孤独的博客 空指针异常--NullPointException - 享受孤独 - 享受孤独的博客](http://b.bst.126.net/common/portrait/face/preview/face2.gif)
最后,总结一下可能触发空指针异常的情况吧(我遇到过的):
1、在定义类的对象时,没有用new关键字或者其他方式(反射)实例化该对象就调用了其方法!而导致的空指针异常!
2、在利用Mybatis查询数据库表时,并且使用sqlsession.selectList("url",entity)查询,最后用List对象来接最后的查询结果!这是DAO层!在Service层中得到DAO层的返回结果时,想判断结果集是否是空集(即list.size()==0),而导致的空指针异常!(list本来就是null,调用其方法报错)!
3、使用Integer、Double、Boolean等关键字定义的变量,在没有赋初值的情况下就访问而导致的空指针异常!
目前遇到过的情况,就这么多吧。总之解决空指针异常,还算容易的吧!打开Debug模式,在报空指针异常的语句附近,查看每一个对象(变量),将鼠标放在该变量上面,就可以判断该变量是否是null!