2016-09-23 68 views
0

ArrayList在函數中作爲null初始化並傳遞給另一個函數。在另一個函數中,我檢查了該列表的空和空,並且如果傳遞列表被發現爲空,則分配新創建的列表。但是,當我從那個函數回來時,我發現該列表仍然爲空。由於java是通過值傳遞的,所以在通過列表中進行的任何更改都應該反映在返回列表中從函數返回時ArrayList爲null

+0

請*顯示*您的代碼,而不是描述它。我懷疑這個問題可能是因爲你錯誤地理解了Java中傳遞的內容 - 它不是一個對象,而是一個參考。引用是通過值傳遞的,但對對象的修改仍然可以通過稍後的引用看到。 –

+0

請添加一些代碼 – Venkat

回答

0

正如你所說,Java是按值傳遞的。

它通過指向您的清單的值。

一種方法無法用新值更新其調用者使用的變量(這將是通過引用)。

您可以在您的方法中執行的所有操作都是更改已傳遞的列表的內容(通過調用相應的方法)。您不能將其更改爲另一個列表。如果你想這樣做,你需要發回新的列表作爲返回值。