问题描述
Java double
字段将默认初始化为0.0
。JavaDouble
字段将默认初始化为null
。无论您使用哪种Java版本,以及在哪种环境下运行,这两个事实都是正确的。
如果您在不同的环境中看到不同的行为,那么最可能的解释是您正在各自的环境中执行不同的代码(或以不同的方式调用相同的代码)。发布一些显示问题的代码 可能 指向其他问题,但我对此表示怀疑。
根据您发布的代码,不可能custAmount
是null
。如果看到的是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 ..