java 中 null == a 和 a == null 的区别
2018-08-07 本文已影响29人
chenxuxu
在一些书籍和博客里会看到一种说法,判空时建议 null 放前面。照葫芦直接在项目中用,结果被组长问:为什么要这么写?我一下子懵了,不知道怎么回答。最近整理才明白当中原因,理由如下:
我们在代码中判空时,if (a == null)
,有可能手快写成 if (a = null)
,这在一些语言是可以进行编译运行,结果就会出错,让你花费时间查找此处问题。但是写成 if (null = a)
编译运行是一定会报错的。所以反着写可以预防一些错误因素。
这时有些朋友按捺不住,跳出来说:在 java 下 if (a = null)
编译器就会报错,因为括号内只能放 boolean 值。别急,这可不一定。别忘了 Boolean 的存在。请往下看:
上面这段代码在编译器不会报错。即使是进行编译运行,也是部分编译器运行成功,部分编译器运行失败。(这里确实很神奇,我在 android studio 运行成功过,后面又一直运行失败...)
总结
明白了 null 放前面的原因和特殊情况后,大家也可以根据自己喜好做选择。在 java 中,一般 null 放后面其实影响也不大,看各自的习惯了 (-0_0-)。