Java中null空值判断

season2008 2015-06-18 11:34:29
1,错误用法一:

if (name == "") {
//do something
}

2,错误用法二:
if (name.equals("")) {
//do something
}


3,错误用法三:
if (!name.equals("")) {
//do something
}


我们来解说一下:
上述错误用法1是初学者最容易犯,也最不容易被发现的错误,因为它们的语法本身没问题,Java编译器编译时不报错。但这种条件可能在运行时导致程序出现bug,永远也不会为true,也就是时说,if块里的语句永远也不会被执行。

上述用法二,用法三 的写法,是包括很多Java熟手也很容易犯的错误,为什么是错误的呢?也许你会感到纳闷。
对,它们的写法本身没错,但是,少了一个null判断的条件,试想,如果name=null的情况下,会发生什么后果呢?后果是,你的程序将抛出NullPointerException异常,系统将被挂起,不再提供正常服务。
当然,如果之前已经对name作了null判断的情况例外。

正确的写法应该先加上name != null的条件,如例:

if (name != null && !name.equals("")) {
//do something
}
...全文
309 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
hepeng_8 2015-06-23
  • 打赏
  • 举报
回复
StringUtils.isblank 这个方法很不错,你也可以看看 StringUtils这个中其他的一些方法,很实用
异常异长 2015-06-19
  • 打赏
  • 举报
回复
其实就是 是否为空 然后 判断字符串长度
romantic_moon 2015-06-19
  • 打赏
  • 举报
回复
if (!"".equals(name)) { //do something } 直接这么写就可以了,当name=null是,!"".equals(null) 不会发生NullPointerException异常。
finemi 2015-06-19
  • 打赏
  • 举报
回复
肯定有人来接分
tony4geek 2015-06-19
  • 打赏
  • 举报
回复
你是分享啊。。
Terry丰 2015-06-19
  • 打赏
  • 举报
回复
。。。。。。写法很多,逻辑上没错就行了
Silencer9527 2015-06-19
  • 打赏
  • 举报
回复
StringUtils.isblank() null ”“ ” “ 半角空格全都可以判断出来 如果不需要判定出来半角空格 参照二楼挪到.前面就是了

50,451

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧