String Value = null; if(Value.equals("")){ } if(("").equals(Value)){ } 有什么区别。

第一个Value如果是NULL为什么会包NullPointerException,而第二种为什么不报... 第一个 Value 如果是NULL 为什么会包NullPointerException,而第二种为什么不报 展开
 我来答
百度网友13eda02
2012-08-29 · TA获得超过778个赞
知道小有建树答主
回答量:1048
采纳率:77%
帮助的人:380万
展开全部
写("").的时候,会自动new一个字符串对象、值为空,
但、只要是字符串对象就可以调用equals方法;
而Value=null;它不是任何类的对象、就是空、没有内存地址,
也就没有任何方法或属性可用。
乌光QS
2012-08-29 · TA获得超过1365个赞
知道小有建树答主
回答量:464
采纳率:100%
帮助的人:447万
展开全部
好习惯是总写成第二种形式,作用就是不会产生NPE。
第一种当Value是null的时候,其实是要执行null.equals(),但是空对象是不可以执行的,所以有NPE,第二种是"".equals(null),这是完全合法的,因为空字串""不是空对象而是实实在在的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式