Java Double初始化为0.0

问题描述

Java double字段将默认初始化为0.0。JavaDouble字段将默认初始化为null。无论您使用哪种Java版本,以及在哪种环境下运行,这两个事实都是正确的。


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


根据您发布的代码,不可能custAmountnull。如果看到的是null,则您必须使用该代码的其他版本,null否则该代码必须来自其他来源。

解决方法

我有一个Bean,其中有一个字段“
CustAmount”,该字段为double,我尝试测试该Bean,但我似乎不明白这一点:当我在本地计算机上运行时,实例化时它将初始化为0.0。当我在linux测试环境中运行相同的代码时,它保持为空。因此,如果我将CustAmount作为null发送到后端,则会得到一些数据,但是如果我将CustAmount作为0.0发送,则查询将在0.0的基础上完成,并且没有向我发送任何内容。

如果代码相同,这怎么可能呢?在我用Java 1.5编译新的MyBean()时,双可能仍然为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。Syed ..

猜你在找的技术问答相关文章

如何检查配对的蓝牙设备是打印机还是扫描仪(Android)
是否允许实体正文进行HTTP DELETE请求?
如何将ZipInputStream转换为InputStream?
java.util.logging Java 8中的变量
PowerMockito.doReturn返回null
Java中的RESTful调用
Swing / Java:如何正确使用getText和setText字符串
特殊字符和重音字符
Android Studio中的ndk.dir错误
错误“找不到主类”