| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > 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! |