Я не совсем понимаю, когда 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' в исходном списке. –