Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > Проблема с Cloneable


Автор: Alone 6.2.2004, 14:46
Есть у меня объект - некая структура для хранения данных.
В основном поля простых типов. Но есть одно поле, в котором может храниться объект разных типов. Для этого я сделал его типа Object. Но в последствии столкнулся с проблемой клонирования этого объекта.

Тип Object как оказалось неклонабельный... Так вот: как бы мне реализовать для обжекта метод клоне() ?
Создавать свой класс , наследник от обжекта - не годится, потому как это уже не обжект...

Автор: XClan 6.2.2004, 15:09
http://www.balakovo.san.ru/~mishin/oreilly/java/fclass/ch16_12.htm

Автор: Alone 6.2.2004, 15:42
Проблема решилась следующим образом...

Вот отрывок из класса, который представляет собой стурктуру для хранения.
Поле src типа Object
Далее идет реализация метода Clone() хитрым способом smile.gif

Код

   public String type;
   
   public Object src;
   
   /** Creates a new instance of contactsRow */
   public contactsRow() {
   }
   
   public Object clone() {
       contactsRow clone=null;
       try {
           clone=(contactsRow) super.clone();
       }
       catch (CloneNotSupportedException e) {
           throw new InternalError(e.getMessage());
       }
       if(src instanceof personRow){
           personRow oldRow=(personRow)src;
           personRow newRow=new personRow();
           newRow=(personRow)oldRow.clone();
           clone.src=newRow;
       }
       тут надо будет разместить проверку на остальные типы, которые может принимать это поле
       возможно кто подскажет решение проще?
       return clone;
   }

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)