自動取消裝箱可能會導致 NullPointerException

此程式碼編譯:

Integer arg = null;
int x = arg;

但它會在執行時因第二行的 java.lang.NullPointerException 而崩潰。

問題是原始 int 不能具有 null 值。

這是一個簡約的例子,但在實踐中,它通常表現為更復雜的形式。NullPointerException 不是非常直觀,通常在查詢這些錯誤方面幫助不大。

依靠自動裝箱和自動拆箱,確保未裝箱的值在執行時不會有 null 值。