Java Double 初始化为 0.0

标签 java double

我有一个 bean,其中有一个双倍字段“CustAmount”,我尝试测试该 bean,但我似乎不明白这一点:当我在本地计算机上运行时,实例化时它会初始化为 0.0。当我在 Linux 测试环境中运行相同的代码时,它仍然为空。由于检索到的数据存在差异,这意味着如果我将 CustAmount 作为 null 发送到后端,我会得到一些数据,但如果我将 CustAmount 作为 0.0 发送,则查询将在 0.0 的基础上完成,并且不会向我发送任何信息。

如果代码相同,这怎么可能,当我在 java 1.5 中编译 new MyBean() 时,有可能 double 保持为 null,而在 1.6 中它会被初始化为 0.0。

我不知道这是否会在两个 Java 版本中发生,但这是我这边唯一的区别。

感谢您的任何提示。

添加代码片段:

public class MyBean {

private double custAmount;

    public void setCustAmount(double custAmount) {
        this.custAmount = custAmount;
    }
public double getCustAmount() {
        return custAmount;
    }

}

我就是这样做

MyBean mybean =  new MyBean();

它不是一个 Double,而是一个 double。 赛义德..

最佳答案

Java double 字段将默认初始化为 0.0。 Java Double 字段将默认初始化为 null。无论您使用什么版本的 Java,也无论您在什么环境中运行它,这两个事实都是正确的。

<小时/>

如果您在不同的环境中看到不同的行为,那么最可能的解释是您在各自的环境中执行不同的代码(或以不同的方式调用相同的代码)。发布一些显示该问题的代码可能指出其他一些问题,但我对此表示怀疑。

<小时/>

根据您发布的代码,custAmount 不可能为 null。如果您看到 null,则您必须使用该代码的不同版本,或者 null 必须来自其他来源。

关于Java Double 初始化为 0.0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9769110/

相关文章:

java - Double.parseDouble 丢失小数位

java - 带有sql关键字静态工厂的mybatis @Select在编译时出错?

java - 如何创建多个Spring命名Bean实例?

java - 同一 .java 文件中任何其他顶级类的可访问性如何?

vb.net - 将单精度数转换为 double

c++ - 2个给定数字之间的 double 密度

java - 无法读取文件名

java - 以下情况的替代方案

dart - 达特银行家的四舍五入

MySQL 列类型 'Double' - 删除小数点后的数字