| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java: Общие вопросы > Фатальное непонимание. |
| Автор: smartchecker 4.10.2013, 17:00 |
| В аттаче зависимость объектов. Хочу в объекте B иметь ссылку на объект A, а получаю независимую копию объекта А. Проясните суть. Объекты самописные. |
| Автор: Stolzen 4.10.2013, 17:23 |
| Покажите лучше код |
| Автор: smartchecker 4.10.2013, 17:49 | ||||||
Ну как-то так...
И в другом месте я ожидаю что вот этот код вернёт мне индекс в ArrayList'е этого объекта
|
| Автор: smartchecker 5.10.2013, 12:42 |
| Причём в том месте, где ArrayList создаётся, судя по тому, что показывает debugger - всё происходит правильно. А потом, когда я его в другом месте достаю что-то происходит не так. |
| Автор: smartchecker 5.10.2013, 12:47 | ||
| Так... Я всё понял. Я - идиот! Я, кажется, про это уже спрашивал. Проблема в этом коде
Т.е. я хочу получить копию ArrayList'а и, очевидно, получаю не совсем то, что ожидаю. Вопрос - как получить копию с нужным мне поведением? |
| Автор: Stolzen 5.10.2013, 16:03 |
| Попробуйте убрать copy и оставить только t |
| Автор: smartchecker 5.10.2013, 20:34 | ||
Тогда результирующий ArrayList смотрит на те же объекты(см. аттач), а мне нужны идентичние, но независимые копии. |
| Автор: Pawl 6.10.2013, 08:39 |
| А как вообще работает ваш метод t.copy()? В коде, пожалуйста. |
| Автор: smartchecker 6.10.2013, 11:18 | ||||||
Ну как-то так
Я не знаю как присвоить правильный адрес объекту linkedTriad. Поэтому он остаётся старым. |
| Автор: smartchecker 6.10.2013, 17:39 | ||
Так будет безвылазная рекурсия. |
| Автор: Pawl 6.10.2013, 17:47 | ||
Тогда однозначно упрощай задачу и выкладывай код сюда. Потому что однозначно код
просто присваивает переменной linkedTriad ссылку на объект, который уже есть в объекте origOper, а не создает копию этого объекта. |