黑马程序员技术交流社区
标题:
“”和null使用的易出错点
[打印本页]
作者:
Camwly
时间:
2015-11-23 12:24
标题:
“”和null使用的易出错点
如代码所示:public class NullDemo {
public void testNull(String str)
{
if(!str.equals("")&&str!=null)
{
System.out.println("不为空");
}
}
}
事实上,上面的例子是有错的,不过很多人很容易犯错,我也一样。我们在判断一个字符串同时不为null也不为“”时,我们应该这样if(str!=null&&!str.equal("")),因为如果先判断!str.equal("")时若str是null的话程序就会报错。所以应该先判断str!=null。我们知道&&是短路的,只要不满足前一个条件,后面的一句就不会执行,所以但str为null时,就不会再执行!str.equal("")这一句了。一个小知识点,容易出错,大家多注意。
作者:
笑出了翔
时间:
2015-11-23 23:36
请教下,if(str!=null&&!str.equal(""))和if(str!=null&&str!=""),有什么区别咩?
作者:
晚睡晚起的
时间:
2015-11-23 23:50
还是没有搞懂...
作者:
zqiang
时间:
2015-11-24 00:20
""是对象,可以调用方法.而null是常量,不可以调用方法
作者:
龙sama
时间:
2015-11-24 10:41
先跟null比较判断是否存在值,再判断值是否为“”。如果本身是null然后判断是否相等于“”是会出错的。
作者:
hdhunter
时间:
2015-11-24 10:48
学习了。感谢
作者:
小麦大米
时间:
2015-11-24 18:25
好东西,学习了,谢谢
作者:
萧未然
时间:
2015-11-24 19:43
注意了。
作者:
yuhongzhen
时间:
2015-11-24 20:02
null一般用于对象的空赋值,意思是对象变量没有指向对象的内存地址(对象没有实例化),“”是空字符,不是一个概念。但是因为String的特殊性,存在这两个所谓的空。
作者:
13277988289
时间:
2015-11-24 20:02
学习了,这种问题如果不注意真的会写出来!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2