自動取消裝箱可能會導致 NullPointerException
此程式碼編譯:
Integer arg = null;
int x = arg;
但它會在執行時因第二行的 java.lang.NullPointerException
而崩潰。
問題是原始 int
不能具有 null
值。
這是一個簡約的例子,但在實踐中,它通常表現為更復雜的形式。NullPointerException
不是非常直觀,通常在查詢這些錯誤方面幫助不大。
依靠自動裝箱和自動拆箱,確保未裝箱的值在執行時不會有 null
值。