[英]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.