考慮以下Java 程式碼片段:
考慮以下Java 程式碼片段:
問題: 為什麼temp() 方法(使用三元運算子)不會產生編譯器錯誤,而same() 方法(使用if 語句)卻會產生編譯器錯誤?
答案:
Java 編譯器將 null 解釋為 Integer 的 null 引用。使用條件運算子時,將套用自動裝箱/拆箱規則(根據 Java 語言規格 15.25)。這允許編譯器繼續執行而不會發出錯誤,即使在執行時間會拋出 NullPointerException。 相反,當使用 if 語句時,編譯器會套用標準類型檢查規則。由於 null 不是有效的 int 值,因此會產生編譯時錯誤。以上是為什麼三元運算子允許 Null,而 If 語句不允許?的詳細內容。更多資訊請關注PHP中文網其他相關文章!