脚本宝典收集整理的这篇文章主要介绍了Java Double NullPointerException,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
问题描述
重构计量项目后台,运行单元测试时,遇到了错误。
第145
行:
又没有在null
上调方法,两个Double
相乘,怎么会空指针呢?
尝试
打开IDEA
新建一个普通的Java
项目。
double
package com.mengyunzhi; public class Main { double testDouble; PRivate void test() { System.out.println(testDouble); double result = testDouble * 10; } public static void main(String[] args) { Main main = new Main(); main.test(); } }
运行结果:
Double
package com.mengyunzhi; public class Main { Double testDouble; private void test() { System.out.println(testDouble); Double result = testDouble * 10; } public static void main(String[] args) { Main main = new Main(); main.test(); } }
运行结果:
分析
Double
是double
的包装类。double
是基本数据类型,默认值为0.0
;Double
为类类型,默认值为null
。
就像将Double
对象赋值给基本类型double
时,是不会报错的,因为有一层隐式调用,将Double
转化为double
。
而我猜想这里的空指针应该也和这个有关系,对象是没法乘的,所以隐式调用转化为double
,然后再运算。
因为没有初始化,所以Double
对象默认是null
,在null
隐式调用方法,所以就空指针异常。
解决
实例化的时候维护上倍数。
运行单元测试,通过!
总结
有时候,很多奇奇怪怪的问题,往往都有很简单的解释,只是我们一时没想到。
以上是脚本宝典为你收集整理的Java Double NullPointerException全部内容,希望文章能够帮你解决Java Double NullPointerException所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。