首页 > 编程语言 > 详细

JAVA三元运算符空指针引用的坑

时间:2020-08-20 20:42:25      阅读:134      评论:0      收藏:0      [点我收藏+]

有以下代码:

Long x = null;
Long y = true ? x : 100L;
System.out.println(y);

很多人以为会输出:null,其实会报空指针异常

原因是编译后包装类型会拆箱: Long y = true ? x : 100L;  反编译后变为:Long y = true ? x.longValue() : 100.longValue();
x为空对象,调用.longValue()自然会引用空指针异常

 

正确的代码:

Long x = null;
Long y = true ? x : Long.valueOf(100);
System.out.println(y);

将基本类型100L 改为 包装类型Long.valueOf(100),这样就不会发生拆箱,也就不会发生空指针引用。

希望大家使用三目运算符 且 两边类型不一致时,一定要引起注意!!!

JAVA三元运算符空指针引用的坑

原文:https://www.cnblogs.com/mrhgw/p/13537057.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!