Java Double NullPointerException

发布时间:2019-11-17 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了Java Double NullPointerException脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

问题描述

重构计量项目后台,运行单元测试时,遇到了错误。

clipboard.png

145行:

clipboard.png

又没有在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();     } }

运行结果:

clipboard.png

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();     } }

运行结果:

Java Double NullPointerException

分析

看了两个运行结果,大体应该就能分析出来原因了。

Doubledouble的包装类。double是基本数据类型,默认值为0.0Double为类类型,默认值为null

Java Double NullPointerException

就像将Double对象赋值给基本类型double时,是不会报错的,因为有一层隐式调用,将Double转化为double

而我猜想这里的空指针应该也和这个有关系,对象是没法乘的,所以隐式调用转化为double,然后再运算

因为没有初始化,所以Double对象默认是null,在null隐式调用方法,所以就空指针异常。

解决

实例化的时候维护上倍数。

Java Double NullPointerException

运行单元测试,通过!

Java Double NullPointerException

总结

有时候,很多奇奇怪怪的问题,往往都有很简单的解释,只是我们一时没想到。

脚本宝典总结

以上是脚本宝典为你收集整理的Java Double NullPointerException全部内容,希望文章能够帮你解决Java Double NullPointerException所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。