我从别人那里听说null == object
比object == null
检查更好
例如:
void m1(Object obj ) {
if(null == obj) // Is this better than object == null ? Why ?
return ;
// Else blah blah
}
有没有什么原因,或者这是另一个?
发布于 2018-04-23 17:54:01
这可能是从C学习的习惯,为了避免这种错字(单一=
而不是双==
):
if (object = null) {
将常量放在左边的惯例==
在Java中并不是很有用,因为Java要求表达式的if
值是一个boolean
值,所以除非常量是a boolean
,否则无论使用哪种方式,都会遇到编译错误参数。(如果它是一个布尔值,你不应该使用==
...)
发布于 2018-04-23 19:39:08
正如其他人所说,这是从C学习的习惯,以避免错别字 - 尽管即使在C中,我也希望体面的编译器在足够高的警告水平下发出警告。正如Chandru所说,以这种方式与Java中的null进行比较只会在您使用类型变量Boolean
(您不在示例代码中)时导致问题。我会说这是一个非常罕见的情况,而不是一个值得改变其他地方编写代码的方式。(即使在这种情况下,我也不会打扰操作数;如果我足够清楚地考虑扭转它们,我相信我可以计算等号。)
什么也没有被提及的是,很多人(当然我自己在内)发现的if (variable == constant)
形式可读性更强-这是表达自己的更自然的方式。这是不要盲目复制C的一个惯例的原因。你应该总是质疑实践(正如你在这里所做的那样:),然后才能假定在一个环境中可能有用的东西在另一个环境中是有用的。
https://stackoverflow.com/questions/-100003958
复制相似问题