工作,我嘗試下面的代碼:不等於沒有在Java
if (!object.equals(null)) {
object.setItem(object1.getTime());
}
這裏,對象和object1兩類對象。
問題是,它進入聲明null值。
工作,我嘗試下面的代碼:不等於沒有在Java
if (!object.equals(null)) {
object.setItem(object1.getTime());
}
這裏,對象和object1兩類對象。
問題是,它進入聲明null值。
Java中的equals()
方法根據equals()方法的合同,你必須重寫比較兩個對象相等或它遵循對象類equals()方法合約。
在任何情況下,equals()方法都會比較兩個對象。 null不是一個對象。 null是一個引用類型,它的檢查應該使用object != null
來完成。
引用['equals()']的javadoc(https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#equals-java.lang.Object-): *對於任何非空引用值'x','x.equals(null)'應該返回'false'。*當然,'! false'總是'true',所以'if'表達式是,*通過定義*,總是'true',這意味着**'if'塊總是被執行**。 – Andreas
*「問題是它進入了一個null值的語句。」*不明白它是如何做到這一點的,因爲'object.equals(null)'表達式將產生'NullPointerException' if'object'爲空,所以if塊內的代碼永遠不會到達。 – Andreas