Nowa zawartość listy bez przypisania.

0

Napisałem kawałek kodu w Java który działa na ArrayList i przekazuje jako jeden z argumentów właśnie tą listę. Metoda zwraca tą listę po usunięciu z niej pewnych elementów.
Dlaczego po wykonaniu tej instrukcji :

method(mainList);

zmienia mi główną listę tzn. równoważne z zapisem :

mainList=method(mainList);
4

W Javie zawsze przekazujesz przez wartość, a instancje obiektów są tak naprawdę tylko referencją do obiektu, więc jeśli modyfikujesz obiekt wewnątrz funkcji bez jakiejś formy kopii to modyfikujesz instancję. Nie wiem czy znasz C, ale możesz myśleć o instancjach obiektów w Javie jak o wskaźnikach w C. Zasada działania jest dokładnie taka sama.

1 użytkowników online, w tym zalogowanych: 0, gości: 1