將null 回傳
在Java 中,儘管為int 傳回null,temp() 方法也不會引發編譯器錯誤,而當表示為if 語句時,same() 會執行此操作。這種差異是由於編譯器對 null 傳回值的解釋而產生的。
三元運算子
對於三元運算符,編譯器將null 視為對Integer 的null 引用,遵循自動裝箱/拆箱規則(Java語言規範15.25)。這會導致 int 裝箱為 Integer 並轉換回來,從而允許 null 傳回值。但是,這會在運行時產生 NullPointerException。
if 語句
使用 if 語句時,編譯器會強制執行 null 與 int 之間的不相容型別。它需要一個 int 傳回值,並且不允許 null 賦值,這與三元運算子不同,三元運算子允許自動裝箱/拆箱轉換。
以上是為什麼從 `temp()` 方法回傳 Null 不會導致 Java 中的編譯器錯誤,而使用 If 語句的 `same()` 會導致編譯器錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!