比较差异是什么?

Den*_* S. 1 java comparison

可能重复:
Java中的空检查

我只是想知道它们之间有什么区别

if (null == something) {...}
Run Code Online (Sandbox Code Playgroud)

if (something == null) {...}
Run Code Online (Sandbox Code Playgroud)

假设在两种情况下something都是同一个对象.据推测,除了代码的可读性之外,应该是非.

Dan*_*iel 7

这些陈述完全等同.

只有在使用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时,显然会失败.


Chr*_*lis 6

没有区别.

将常数放在第一位的想法有助于防止在这种情况下意外分配.例如,在某些语言中,有效说:

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)

编译器错误会立即提醒您正在尝试分配常量.