阅读别人开源代码时发现,很多大佬喜欢 "null == obj"这种写法,比如:
if (null == contents) {
return this.render_404();
}
究其根本是因为这些大佬有过c开发的经历,这是c开发的一个规范导致。 在c里,if(c=null) 和 if(c==1) 都是合法的,但是效果是不一样的。第一个是赋值,然后把赋值的结果判断。 一个是判断是否相等。这种情况很容易写错,为了防止这种情况,但是的规范是,如果有常量判断的话,把常量放在前面。这样由于常量无法赋值,就会发生编译错误。 此外,需要注意 "A".equal(a) 和 a.equal("A") 是不同的,因为a为null时,第二个会报错。
java也延续了c的规范。