Java自动拆箱可能导致 NullPointerException
例子
此代码编译:
Integer arg = null; int x = arg;
但它会在运行时崩溃,java.lang.NullPointerException第二行有一个。
问题是原语int不能有null值。
这是一个极简的例子,但在实践中它经常以更复杂的形式表现出来。这NullPointerException不是很直观,通常对定位此类错误几乎没有帮助。
小心依赖自动装箱和自动拆箱,确保未装箱的null值在运行时没有值。