我刚刚发现我可以比较null
与Object
这样的,
if(null != Object)
而不是比较Object
与null
,像
Object != null
如果采用前一种方法有什么可以去错了吗?
那是合法的吗? 如果没有,那么为什么编译器接受呢?
我刚刚发现我可以比较null
与Object
这样的,
if(null != Object)
而不是比较Object
与null
,像
Object != null
如果采用前一种方法有什么可以去错了吗?
那是合法的吗? 如果没有,那么为什么编译器接受呢?
有一件事错了 - 可读性。 如果你想写一个干净的代码,你应该关心它会在未来的阅读方式。 它必须是显而易见的,它做什么,以及为什么它做某一件事。 如果将“对象”来评价的权利,它变得越来越明显哦,你真正做的事情。 嗯,至少在我看来...
两者都是等价的,但null != object
是从语言的旧的做法,即它是有效的写if (object = null)
和意外null分配对象。 这是一个后卫阻止这种情况发生的事故。
大多数人说Object != null
,因为这是他们所习惯的方式,所以它更容易阅读。
我听过的最好论据null != object
是避免不良表情。 例如以拾取一个错字在if (var == 1)
if (var = 1) // this is valid C
if (1 = var) // this is not valid C
这只是一个可读性的问题。 如果你能读出你的代码响亮,它是有道理的,更容易理解。 第二个版本是像尤达大师对话。“null是不是对象。”比较“的对象不为空” ..
这同样适用于给你的变量和方法的好名字。
一个很好的参考网站写可读的代码: http://www.cleancoders.com/
这是相同的。 这几乎就像说,如果1 != 2
。 这是否意味着2 != 1
?
该!=
操作行为只是作为测试是否相等操作==
。
忽略了表达任何副作用则( expr1 != expr2
)和( expr2 != expr1
)是完全一样的。
如果对象是一个变量(或常量),然后( null != Object
)是一样有效的(虽然有点少读)。