[英]Java Double getting initialized to 0.0
我有一个Bean,其中有一个字段“ CustAmount”,该字段为double,我尝试测试该Bean,但我似乎不明白这一点:当我在本地计算机上运行时,实例化时它将初始化为0.0。 当我在linux测试环境中运行相同的代码时,它保持为空。 因此,如果我将CustAmount作为null发送到后端,则会得到一些数据,但是如果我将CustAmount作为0.0发送,则查询将在0.0的基础上完成,并且没有向我发送任何内容。
如果代码相同,这怎么可能呢?在我用Java 1.5编译新的MyBean()时,任何可能性都可能使double保持为空,而在1.6中,double会初始化为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 ..
Java double
字段将默认初始化为0.0
。 Java Double
字段将默认初始化为null
。 无论您使用哪种Java版本,以及在哪种环境下运行,这两个事实都是正确的。
如果您在不同的环境中看到不同的行为,那么最可能的解释是您正在各自的环境中执行不同的代码(或以不同的方式调用相同的代码)。 发布一些显示问题的代码可能指向其他问题,但我对此表示怀疑。
根据您发布的代码, custAmount
为null
是不可能的。 在看到null
的情况下,您必须使用该代码的其他版本,否则null
必须来自其他来源。
我有一个类似的问题。 我以为我的Long初始化为0。但这不是初始化本身,而是从页面上的<p:selectOneMenu />
开始的。
<p:selectOneMenu value="#{myBean.myLongValue}">
<f:selectItem value="#{null}" itemValue="#{null}" itemLabel="-" />
<f:selectItems ... />
</p:selectOneMenu>
因此,如果您没有通过表单进行设置,请尝试检查您的页面。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.