黑马程序员技术交流社区
标题:
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