繁体   English   中英

Java Double初始化为0.0

[英]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版本,以及在哪种环境下运行,这两个事实都是正确的。


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


根据您发布的代码, custAmountnull是不可能的。 在看到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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM