当前位置: 首页 > 面试题库 >

奇数NullPointerException

池麒
2023-03-14
问题内容

我的NPE的Stacktrace开头为:

Caused by: java.lang.NullPointerException
    at pl.yourvision.crm.web.servlets.listExport.ProductListExport.writeCells(ProductListExport.java:141)

该文件中的行号141为:

Double availablePieces = store != null ? store.getAvailablePieces() : 0.0;

其中store不为null且store.getAvailablePieces()为null。我不明白为什么我要在这里例外。

有任何想法吗?


问题答案:

我99%确信这是由于条件运算符的行为引起的。我相信您的代码等同于:

double tmp = store != null ? store.getAvailablePieces() : 0.0;
Double availablePieces = tmp;

换句话说,它会将的结果拆箱store.getAvailablePieces()double,然后再装箱到Double。如果store.getAvailablePieces()返回null,的确会导致死亡NullPointerException

解决方法是也使第三个操作数Double

Double availablePieces = store != null ? store.getAvailablePieces()
                                       : Double.valueOf(0.0);

现在将没有装箱或拆箱,因此可以store.getAvailablePieces()返回null。然后0.0,您可能想使用它,但这是另一回事。如果要这样做,可以更改为:

Double tmp = store != null ? store.getAvailablePieces() : null:
double availablePieces = tmp == null ? 0.0 : tmp;


 类似资料:
  • 我正试图计算逆FFT,因为我只想要选择频率。下面是我如何进行FFT: 正如上面所看到的,我正在从每个点做一个复数。 然后,我计算一个频率的功率电平:

  • 问题内容: 我的工作是为零售环境的网络摄像机开发软件。我的团队正在开发的软件之一就是Web服务器,它检索由摄像机本身(具有自己的嵌入式Web服务器)以HTML格式生成并存储在摄像机中的各种报告。然后,我们的软件将从摄像机获取这些报告,并将其存储在中央Web服务器上。 在将摄像机的IP很好地插入到我们的软件中的同时,我正在开发一个简单的Java类,该类将查询网络并找到网络上的所有摄像机。 但是问题是

  • 我必须用奇数的范围(这里是)填充数组:1,3,5,7,9...但我总是在每个奇数之间有一个0,我不明白为什么。 注:注释中大写字母下的代码是由我们的教授给出的... 输出:

  • Python3 实例 以下实例用于判断一个数字是否为奇数或偶数: 实例(Python 3.0+)# Filename : test.py # author by : www.runoob.com # Python 判断奇数偶数 # 如果是偶数除于 2 余数为 0 # 如果余数为 1 则为奇数 num = int(input("输入一个数字: ")) if (num % 2) == 0: print

  • 我有一个布尔方法的麻烦,我想检查数组是偶数,奇数,还是两者都不是。我输入数组大小和数组值,但是“isArrayEven”方法仍然输出“array中的所有数字都是偶数”,即使我的数组是1、2、3并且isArrayEven假定是false。 我

  • 问题内容: 我在Windows 64位上使用Python 3.3.0。 我有一个文本文件,如下所示:(请参阅底部的mediafire下载链接) 我正在尝试浏览文件,因此我经常弄清楚我的位置是什么。但是,当按如下所示读取文件的各行时,我得到一个非常奇怪的结果: 结果: 第三行的18446744073709551714是怎么回事?尽管它看起来像一个不可能的值,但显然是可以接受的值,确实使我到达了第三行