"".equals(name) 和name.equals("") 都什么意思?有区别吗?

"".equals(name)和name.equals("")有区别吗?... "".equals(name) 和name.equals("")有区别吗? 展开
 我来答
tianweisong86
推荐于2017-10-05 · TA获得超过781个赞
知道小有建树答主
回答量:483
采纳率:100%
帮助的人:282万
展开全部
逻辑上没有什么区别,因为在重写equals的时候有一条就是满足“对称性”,即如果x.equals(y)返回true,那么y.equals(x)也应该返回true。

但是,"".equals(name)这种写法要安全很多,因为在当name=null的时候name.equals("")会报空指针异常。
WinerAll
2015-12-09 · TA获得超过178个赞
知道答主
回答量:116
采纳率:50%
帮助的人:22.6万
展开全部
意思都是比较两个字符串是否一样

"xxx".equals(name) 不会报空指针异常,而name.equals("xxx")当name为空时会报空指针异常。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
落雨同乐3E
2015-12-09 · TA获得超过352个赞
知道小有建树答主
回答量:815
采纳率:66%
帮助的人:342万
展开全部
没区别就是对比两个的内容是不是相同

前面都可以很好的避免name=null时出现异常
后面当name = null时就会出错终端
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友4cae02e
2015-12-09 · 超过63用户采纳过TA的回答
知道小有建树答主
回答量:176
采纳率:100%
帮助的人:67.6万
展开全部
两个都是比较“”的地址和name的地址是否指向同一个地址,即判断name是否为“”,建议用前者,因为name可能是null,此时name.equals("")就会报错,而前者则会避免这个问题
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
海鲜原产地直发
2021-04-05 · TA获得超过1367个赞
知道答主
回答量:25
采纳率:100%
帮助的人:6751
展开全部
想必楼主现在已经成为大牛了,那我来为后来者解答一下吧!
name.equals("") ;
当name为null时,程序就等于 null.equlas("");null是一个关键字,是不可调用方法的。程序会抛出空指针异常。
"".equals(name) ;
而这种情况: "".equals(null) ;
equlas( )方法允许比较null值。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式