黑马程序员技术交流社区

标题: if(str != null & !str.equals(“”))为什么会抛出空指针异常 [打印本页]

作者: 常文艺    时间: 2011-11-26 02:00
标题: if(str != null & !str.equals(“”))为什么会抛出空指针异常
本帖最后由 常文艺 于 2011-11-26 15:04 编辑

{:soso_e101:}。。。。。。。。。。。。。。
作者: 强子    时间: 2011-11-26 02:10
用&&符号
你用&程序会将&两边的表达式都计算出来
所以当str=null时   用null去调用equals方法  就会报空指针异常了
如果用&&符号  当 str = null时 计算 str!=null 为假  就不去计算str.equals("")了
作者: 侯伟浩    时间: 2011-11-26 08:47
当str为null时,再去调用equals方法就会抛异常了,因为你用null调用了方法
作者: wanghongye    时间: 2011-11-26 11:16
或许你应该检查一下里面的引号是中文的还是英文的。
作者: 冯敏    时间: 2011-11-26 12:38
本帖最后由 xiaoyu_min 于 2011-11-26 12:39 编辑

首先你得弄明白简洁与&&和与&的区别:
a&&b : 如果a为false 则不再判断b,表达式的值自动为false
a&b:当a、b的值同时为false时,表达式的值才为false,a和b都判断
str=null,所以直接抛空指针异常啦,不会再去判断str.equals("")




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2