请考虑以下两行代码
if (test ! = null)
Run Code Online (Sandbox Code Playgroud)
和
if (null != test)
Run Code Online (Sandbox Code Playgroud)
表现明智,上述两个陈述是否有任何区别?我见过很多人使用后者,当被问及时他们说这是一个没有坚实理由的最佳实践.
Pau*_*Wee 22
没有不同.
第二个原因仅仅是因为C/C++程序员总是进行分配而不是比较.
例如
// no compiler complaint at all for C/C++
// while in Java, this is illegal.
if(a = 2) {
}
// this is illegal in C/C++
// and thus become best practice, from C/C++ which is not applicable to Java at all.
if(2 = a) {
}
Run Code Online (Sandbox Code Playgroud)
而java编译器会生成编译错误.
所以我个人更喜欢第一个,因为可读性,人们倾向于从左到右阅读,if test is not equal to null而不是阅读null is not equal to test.
ass*_*ias 22
它们完全一样.第二个在使用equals时有意义:
if("bla".equals(test))
Run Code Online (Sandbox Code Playgroud)
永远不会抛出一个NullPointerException:
if(test.equals("bla"))
Run Code Online (Sandbox Code Playgroud)
能够.
| 归档时间: |
|
| 查看次数: |
14589 次 |
| 最近记录: |