浏览 2184 次
锁定老帖子 主题:避免空指针
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-12-31
最后修改:2009-01-06
工作已经一段时间了,遇到了很多空指针的问题。 List list=dao.findById(id); for(int i=0;i<list.size();i++){ //do some thing } 如果list=null的话,会出现null pointer exception 原因不在于List list=null 而在于list.size()这句话,因为如果list为null的话,不可能有size方法,所以出现空指针的错误。 很多情况下,出现空指针的错误都是类似以上的情形,当然很多时候可能会出现在多层调用的时候。 所以一般需要对返回值做出处理 List list=dao.findById(id); if(list==null){ //一般情况下会在这里做return处理,来避免以下的语句对null进行调用,发生空指针 //当然也可以用if else语句来跳过可能出现空指针调用的语句 } if(list!=null&&list.size()<1){ //需要说明的是内容为空和null是不一样的,内容为空不会报空指针 //但显然下面的for循环不会执行 } for(int i=0;i<list.size();i++){ //do some thing } 另外对jsp页面的空指针也是一样的,因为jsp是被编译成java class运行的。 比如下面代码 <% String para="" List list=request.getAttribute("users"); log.info(para.length()); //output 0 //如果list为null,下面也会出现空指针 for(Iterator i=list.iterator();i.hasNext();){ //output } %> 欢迎大家补充:-) 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |