我刚刚发现我可以这样比较null
和一个Object
,
if(null != Object)
而不是像这样比较Object
和null
,
Object != null
如果采用前一种方法,可能会出现什么问题?
那合法吗?如果不合法,为什么编译器会接受它?
我刚刚发现我可以这样比较null
和一个Object
,
if(null != Object)
而不是像这样比较Object
和null
,
Object != 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
) 是完全相同的。
如果 Object 是一个变量(或常量),那么 (null != Object
) 同样有效(尽管可读性稍差一些)。