可能重复:
Java中的空检查
我只是想知道它们之间有什么区别
if (null == something) {...}
Run Code Online (Sandbox Code Playgroud)
和
if (something == null) {...}
Run Code Online (Sandbox Code Playgroud)
假设在两种情况下something都是同一个对象.据推测,除了代码的可读性之外,应该是非.
这些陈述完全等同.
只有在使用equals时才会出现差异,然后从不明确地使用null.
if( "A".equals(someString) ) { ... }
Run Code Online (Sandbox Code Playgroud)
是null安全的,因为如果someString为null,它不会失败.
if( someString.equals("A") ) { ... }
Run Code Online (Sandbox Code Playgroud)
someString为null时,显然会失败.
没有区别.
将常数放在第一位的想法有助于防止在这种情况下意外分配.例如,在某些语言中,有效说:
if (i = 42) {
...
}
Run Code Online (Sandbox Code Playgroud)
我被分配,条件是真的.如果您不打算这样做,则没有编译器错误,并且很难找到.
如果你总是把常量放在第一位:
if (42 == i) {
...
}
Run Code Online (Sandbox Code Playgroud)
那天你不小心做了:
if (42 = i) {
...
}
Run Code Online (Sandbox Code Playgroud)
编译器错误会立即提醒您正在尝试分配常量.
| 归档时间: |
|
| 查看次数: |
354 次 |
| 最近记录: |