Integer为null赋值给int变量会报java.lang.NullPointerException的思考
注意,该图中断点一行代码会报空指针异常
放过断点后如下图
这个问题困扰我一晚上。正常来讲,我以为是PageHelper是null之类导致的。
后来才弄明白。原来是因为
PageHelper.starPaeg的参数,需要是int类型。
在传入实参是值为null的时候。会报java.lang.NullPointerException。
但是为什么呢?正常来讲不都应该是某个值为null调用了某方法,才会报这样的NullPointerException异常。
其实是因为Interger类型值为null,默认调用了自己的自动拆箱方法null.intValue(),转为int
这样就清楚为啥是报这个空指值异常了。
下面这篇文章分析的很到位,我就不重复了,大致总结就是3种情况,
1.赋值 如 int a = null
2.方法传参,本文中例子就是。
3.比较大小。int a = 1; Interger b = null; if (a == b){}
当然也包括其它包装类,这里以Interger举例。
参考如下:
https://rongmayisheng.com/tag/integer抛空指针/