自动取消装箱可能会导致 NullPointerException
此代码编译:
Integer arg = null;
int x = arg;
但它会在运行时因第二行的 java.lang.NullPointerException
而崩溃。
问题是原始 int
不能具有 null
值。
这是一个简约的例子,但在实践中,它通常表现为更复杂的形式。NullPointerException
不是非常直观,通常在查找这些错误方面帮助不大。
依靠自动装箱和自动拆箱,确保未装箱的值在运行时不会有 null
值。