![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
smartchecker |
|
|||
Новичок Профиль Группа: Участник Сообщений: 48 Регистрация: 28.4.2012 Репутация: нет Всего: нет |
В аттаче зависимость объектов.
Хочу в объекте B иметь ссылку на объект A, а получаю независимую копию объекта А. Проясните суть. Объекты самописные. Присоединённый файл ( Кол-во скачиваний: 12 ) ![]() |
|||
|
||||
Stolzen |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1041 Регистрация: 17.10.2005 Репутация: 23 Всего: 48 |
Покажите лучше код
|
|||
|
||||
smartchecker |
|
||||||
Новичок Профиль Группа: Участник Сообщений: 48 Регистрация: 28.4.2012 Репутация: нет Всего: нет |
Ну как-то так...
И в другом месте я ожидаю что вот этот код вернёт мне индекс в ArrayList'е этого объекта
|
||||||
|
|||||||
smartchecker |
|
|||
Новичок Профиль Группа: Участник Сообщений: 48 Регистрация: 28.4.2012 Репутация: нет Всего: нет |
Причём в том месте, где ArrayList создаётся, судя по тому, что показывает debugger - всё происходит правильно.
А потом, когда я его в другом месте достаю что-то происходит не так. Присоединённый файл ( Кол-во скачиваний: 2 ) ![]() |
|||
|
||||
smartchecker |
|
|||
Новичок Профиль Группа: Участник Сообщений: 48 Регистрация: 28.4.2012 Репутация: нет Всего: нет |
Так... Я всё понял. Я - идиот!
![]() Я, кажется, про это уже спрашивал. Проблема в этом коде
Т.е. я хочу получить копию ArrayList'а и, очевидно, получаю не совсем то, что ожидаю. Вопрос - как получить копию с нужным мне поведением? Присоединённый файл ( Кол-во скачиваний: 4 ) ![]() |
|||
|
||||
Stolzen |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1041 Регистрация: 17.10.2005 Репутация: 23 Всего: 48 |
Попробуйте убрать copy и оставить только t
|
|||
|
||||
smartchecker |
|
|||
Новичок Профиль Группа: Участник Сообщений: 48 Регистрация: 28.4.2012 Репутация: нет Всего: нет |
Тогда результирующий ArrayList смотрит на те же объекты(см. аттач), а мне нужны идентичние, но независимые копии. Присоединённый файл ( Кол-во скачиваний: 3 ) ![]() |
|||
|
||||
Pawl |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 649 Регистрация: 22.4.2008 Где: Витебск Репутация: 7 Всего: 28 |
А как вообще работает ваш метод t.copy()? В коде, пожалуйста.
-------------------- В действительности всё совсем не так, как на самом деле |
|||
|
||||
smartchecker |
|
||||||
Новичок Профиль Группа: Участник Сообщений: 48 Регистрация: 28.4.2012 Репутация: нет Всего: нет |
Ну как-то так
Я не знаю как присвоить правильный адрес объекту linkedTriad. Поэтому он остаётся старым. |
||||||
|
|||||||
Pawl |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 649 Регистрация: 22.4.2008 Где: Витебск Репутация: 7 Всего: 28 |
Честно говоря, не понял, зачем реализовывать метод
если потом вы в конструкторе public Operand(Operand origOper) потом все-равно присваиваете переменной linkedTriad ссылку на уже существующий объект класса Triad? Я имею ввиду оператор linkedTriad = origOper.linkedTriad; Может, лучше сделать так: linkedTriad = origOper.linkedTriad.copy()? А вообще, трудновато разобраться с куском большого проекта. Может, вам лучше упростить свой код до предела, чтобы локализовать проблему? Это сообщение отредактировал(а) Pawl - 6.10.2013, 15:11 -------------------- В действительности всё совсем не так, как на самом деле |
||||
|
|||||
smartchecker |
|
|||
Новичок Профиль Группа: Участник Сообщений: 48 Регистрация: 28.4.2012 Репутация: нет Всего: нет |
Так будет безвылазная рекурсия. |
|||
|
||||
Pawl |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 649 Регистрация: 22.4.2008 Где: Витебск Репутация: 7 Всего: 28 |
Тогда однозначно упрощай задачу и выкладывай код сюда. Потому что однозначно код
просто присваивает переменной linkedTriad ссылку на объект, который уже есть в объекте origOper, а не создает копию этого объекта. -------------------- В действительности всё совсем не так, как на самом деле |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |