null和"null"的区别

       昨天修改项目bug的时候,刚开始很郁闷,明明为空的变量判断是否为空时居然显示为false,我吃惊?这也是最近java最闹心的bug之一?

       情况是这样的,

String photoDir = request.getParameter("photoDir");
System.out.println("photoDir="+photeDir);
System.out.println("============"+(photoDir!=null && !"".equals(photoDir)))

结果控制台,却打印:

photoDir=null 
============false

什么情况?通过debug模式发现,页面其它为空的变量值显示为null,但是photoDir却显示为"null"!

问题就出在这里,null是一个空对象,"null"是个字符串对象,它们肯定不等!

所以比较准确的判断不为空的方式为:

if(tm.getPhoto()!=null && !"".equals(tm.getPhoto()) && !"null".equals(tm.getPhoto())){
、、、
}

 

补充:
null是个空对象,不占内存;""是字符串对象,占用内存!

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值