我不完全理解Java何時傳遞一個副本/值以及何時傳遞「引用」(指針)。獲取對象的副本
我想分配一個靜態對象的副本,但我不知道該如何去做。
我有這樣的:
static ArrayList<MyObject> myObjects;
我想myObjects的副本,這樣我可以用值玩耍,而不會影響原來的。當我使用吸氣劑時,它是否通過參考或複製/值:
public static ArrayList<MyObject> getMyObject()
{
return ThisClass.myObjects;
}
返回什麼?如果它是一個參考,我怎樣才能得到一份副本?
我見過這些:
(How do I copy an object in Java?)
(Java: getter method vs. public instance variable: performance and memory)
(Is Java "pass-by-reference" or "pass-by-value"?)
(How can Java assignment be made to point to an object instead of making a copy?)
但是我還是不太明白我會回來的。
如果您的問題是關於不修改原始列表中的MyObject,您將需要列表的深層副本。 –