欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

三元表达式,拆箱的 null可能产生 java.lang.NullPointerException

程序员文章站 2022-03-16 14:53:56
今天开发的时候遇到一个问题而使用一次三元就不会报错后来对代码进行反汇编发现最后的null值会当成Integer对象进行拆箱和装箱操作然后再赋值给i, 所以才导致了空指针异常而只使用一次三元的反汇编直接把null值赋值给了i,并没有拆箱装箱的操作虽然原因找到了,但还是没有理解 赋值之前有拆箱和装箱的操作......

今天开发的时候遇到一个问题
三元表达式,拆箱的 null可能产生 java.lang.NullPointerException
后来对代码进行反汇编
三元表达式,拆箱的 null可能产生 java.lang.NullPointerException
发现最后的null值会当成Integer对象进行拆箱和装箱操作然后再赋值给i, 所以才导致了空指针异常

虽然找到原因,但还是没有理解 为什么会有拆箱和装箱的操作

后来百度资料找到了原因,是三目表达式的规范 第二个参数和第三个参数会类型转换,会统一一个类型,所以会先拆箱成int类型,得出结果再装箱赋值给便量i,这里推荐两篇三目表达式文章大家可以看下
java条件运算符,三目运算符:类型转换导致的错误
Java三目运算符

本文地址:https://blog.csdn.net/qq_45920036/article/details/109946643