創建對象我有一個構造函數,需要一些PARAMS像這樣我得到一個怪異的行爲,同時從構造函數的Java
public XYZ(Long param1, boolean param2, Long param3){
//...
}
,當我試圖通過使用像new操作符創建該類的對象
XYZ xyz = new XYZ(1L, false,4L);
(注意沒有虛假,4之間的空間)
我的參數3始終獲得通過如null在java 7中的構造函數。但是,雖然我試圖在IntelliJ Idea中調試時評估相同的表達式,但對象創建工作正常。
這是由於逗號運算符發生的行爲嗎? 。我嘗試閱讀Java語言規範,但無法找到任何關於此。更重要的是寫在幾個地方,雖然對象創建逗號(,)作爲分隔符而不是作爲運營商。
如果我把params之間的正常間距一切工作正常。有人可以解釋這種行爲。如果逗號作爲操作符工作,那麼在創建對象時不應該有編譯時錯誤?
編輯:
感謝每一個爲你的答案。我無法在生產環境之外複製問題,也許我忽視了一些重要的事情。 請將此問題標記爲已關閉。
只是在這裏粘貼你的代碼不僅僅是方法簽名。 – fairjm
它只是一個普通的構造函數,初始化這三個參數 – sjsupersumit
代碼不會在你的例子中編譯,因爲'XYZ'構造函數簽名需要兩個'Long'參數,並且XYZ構造函數調用需要兩個整數作爲參數。這是'構造函數XYZ(int,boolean,int)是未定義的編譯錯誤。 –