关于三目算符报错问题
今天前端反馈问题,说是有一个接口报错了。有时候报错,有时候不报错。
虽然不是给我反馈的,但是我还是看了一下。当时我的第一反应就是数据原因导致结果出现问题。
点了一个断点看了一下数据,果然因为其中一个字段为空,有的数据那个字段又不为空,所以没有报错
模拟了当时的情况写了一下代码,如下:
Double aaaaa= new Double(null);
Double bbbb=null;
bbbb=true?100:aaaaa;
System.out.println(bbbb);
我看了一下这个代码看起来是完全没有问题的。
Double作为包装类,完全可以可以装下null值,但是就是报错了。还是空指针异常,奇怪了!
后面我看了一下资料,原因是自动拆箱的问题,导致了这个错误。
解决方法
1、将三目运算符的后两位的类型设置成一样的
2、不用用三目运算符
方法不止这些,还有,找一个自己喜欢的,能理解的。吧问题解决了就好