所以我做了一些關於Java中的NullPointerExceptions的解讀,但我還沒有完全理解它。(JAVA)空指針異常,我很困惑
這是爲什麼有效?
if ((department != null && department.equals("COMP")) || (department != null && department.equals("COMM")))
{
this.department = department;
}
同時又有工作是當我第一次檢查!= NULL,然後做第二個嵌套的if語句然後檢查「COMP」或「COMM」的另一種方法。
與上面相比,這個怎麼不起作用?
if (department != null || department.equals("COMP")) || department.equals("COMM")))
{
this.department = department;
}
像大多數人一樣,我不喜歡找到一個意外的解決方案,但並不真正理解爲什麼它是一個解決方案。我對編程仍然很陌生,所以我試圖理解實際發生的事情。當我給出一個隱喻用來比較時,我明白事情是最容易的,如果有人能以這種方式爲我解釋它,那真的會有所幫助> < ;;
非常感謝你們!
什麼是部門?第二,第二個代碼片段不是相同的邏輯 – Li357
那麼如果你嘗試調用未初始化的對象上的任何方法,它會拋出一個異常,以防止我們使用像部門!= null這樣的檢查,關於研究一些java中的邏輯運算符可能會有幫助 – Viney
[Java邏輯運算符短路]可能重複(http://stackoverflow.com/questions/8759868/java-logical-operator-short-circuiting) – Nier