gpt4 book ai didi

java - 如何检查 double 是否为空?

转载 作者:IT老高 更新时间:2023-10-28 20:52:38 30 4
gpt4 key购买 nike

我正在查询一个数据库,我得到的一些结果是空的。我将这些值设置为数据类型为 double 的变量。我们称变量为“结果”。所以我尝试设置一个 if 语句来查看它等于 Null ,这当然不起作用。这是我为该 if 语句提供的代码:

if (results == null)
{
results = 0;
}

我使用此代码得到的错误是:

The operator == is undefined for the argument type(s) double, null

有没有更好的方法来判断它是否为空?

最佳答案

首先,Java double 不能是Java null,也不能与null 进行比较。 (double 类型是原始(非引用)类型,原始类型不能是 null。因此我假设如下:

  • 您尝试检测的“null”是存储在您正在查询的数据库中的 NULL。
  • 您正在使用 JDBC 查询数据库。

如果您调用 ResultSet.getDouble(...) ,返回 double 而不是 Double,记录的行为是 NULL(来自数据库)将返回为零。 (请参阅上面链接的 javadoc。)如果零是该列的合法值,那将无济于事。

按照 Toby's answer 的建议,将 result 的声明类型更改为 Double 而不是 double 无济于事。当数据库包含 NULL 时,分配给 result 的值将是 Double(0.0),而不是 null

这里有两个可行的选项:

getObject 方法将传递一个(非NULL)值作为Double(假设列类型是double)。记录了为 NULL 返回 null。 (更多信息,this page 记录了 SQL 类型到 Java 类型的默认映射,因此您应该期望 getObject 提供什么实际类型。)

关于java - 如何检查 double 是否为空?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9090077/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com