印象深刻的Java空指针异常
文章目录
今天在公司无意中碰到一个从来没碰到过的空指针异常= =
Java中,空指针异常应该是最常见的异常了。一般来说,碰到 NullPointerException 直接跳到报错的那一行就很容易就解决了。
不过有时候空指针异常不是那么容易看出来。
比如:
|
|
本来我是奇怪,就算传一个null进去也是直接赋值给size啊,怎么会报了空指针呢。。
然后就javap了一把才发现,Java的自动装箱/拆箱机制具体是怎样的是解决这个异常的关键。
包装类转换到基本类型,会调用 Long.longValue()
,所以一旦传入的Long是个Null,那肯定会报空指针的!
事实证明,NullPointerException不会无缘无故出现的。。