Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Java ME (J2ME) > создание копии объекта |
Автор: Pawl 18.11.2010, 00:57 |
Доброго времени суток, господа! Переделываю для мобилки одну игрушку (гомоку), написанную мною ранее на яве-1.6 и теперь пытаюсь реализовать отмену хода. В исходной версии я делал это так: перед тем, как сделать ход, клонировал объект, в котором у меня находятся все данные о ходах противников, и заносил клон в коллекцию. а когда отменял ход, извлекал этот клон. Тут проблема в том, что в классе Object в j2me я НЕ НАШЕЛ метод clone()! Точнее Netbeans ругался, когда я пытался вызвать этот метод на объекте в мобильном приложении. Был бы признателен, если подскажете, как мне обойти эту трудность! |
Автор: Mabramyan 18.11.2010, 05:52 |
А ваши классы имплементят интерфейс Clonable ? http://www.java-samples.com/showtutorial.php?tutorialid=344 |
Автор: Pawl 18.11.2010, 10:14 | ||
Дело в следующем: в j2me НЕТУ такого интерфейса. В том-то и проблема: как создать копию объекта не используя Clonеable! Кое-какие мысли по этому поводу у меня появились, но вдруг есть какие-то стандартные решения? Не хочется, знаете ли, изобретать велосипед! |
Автор: kkorsakoff 18.11.2010, 10:59 |
В ME нет ни clone ни clonable. Создайте конструктор, принимающий объект того же класса и вручную присваивайте всем полям значения из исходного объекта. |
Автор: oxigen 18.11.2010, 11:37 |
Идея с использованием clone() мне вообще кажется не слишком удачной. Вы должны сохранять состояние только тех полей, значение которых необходимо для отмены хода. Но никак не весь объект целиком. |
Автор: Pawl 18.11.2010, 12:10 |
Да, согласен, клонирование тут - не совсем удачное решение, т. к. ресурсоемко. Что же, последую рекомендации г-на kkorsakoff'a, тем более, что я так и думал поступать. Спаасибо всем, тему закрываю. |
Автор: Pawl 18.11.2010, 15:03 |
YESSS! У меня получилось! Именно так, как советовал г-на kkorsakoff! |