首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >object == null或null == object?

object == null或null == object?
EN

Stack Overflow用户
提问于 2018-04-23 09:46:20
回答 2查看 0关注 0票数 0

我从别人那里听说null == objectobject == null 检查更好

例如:

void m1(Object obj ) {
   if(null == obj)  // Is this better than object == null ? Why ?
       return ;
   // Else blah blah
}

有没有什么原因,或者这是另一个?

EN

回答 2

Stack Overflow用户

发布于 2018-04-23 17:54:01

这可能是从C学习的习惯,为了避免这种错字(单一=而不是双==):

if (object = null) {

将常量放在左边的惯例==在Java中并不是很有用,因为Java要求表达式的if值是一个boolean值,所以除非常量是a boolean,否则无论使用哪种方式,都会遇到编译错误参数。(如果它是一个布尔值,你不应该使用==...)

票数 0
EN

Stack Overflow用户

发布于 2018-04-23 19:39:08

正如其他人所说,这是从C学习的习惯,以避免错别字 - 尽管即使在C中,我也希望体面的编译器在足够高的警告水平下发出警告。正如Chandru所说,以这种方式与Java中的null进行比较只会在您使用类型变量Boolean(您不在示例代码中)时导致问题。我会说这是一个非常罕见的情况,而不是一个值得改变其他地方编写代码的方式。(即使在这种情况下,我也不会打扰操作数;如果我足够清楚地考虑扭转它们,我相信我可以计算等号。)

什么也没有被提及的是,很多人(当然我自己在内)发现的if (variable == constant)形式可读性更强-这是表达自己的更自然的方式。这是不要盲目复制C的一个惯例的原因。你应该总是质疑实践(正如你在这里所做的那样:),然后才能假定在一个环境中可能有用的东西在另一个环境中是有用的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100003958

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档