User008, для копирования объектов можно применить клонирование. Клонирование, в свою очередь, бывает двух видов "глубокое" (deep clone) и "неглубокое" (shallow clone). Разница между ними в том, что shallow clone по сути клонирует только примитивы, поля объекта остаются прежними, а deep clone полностью клонирует структуру объекта.
Сперва надо определиться, какой тип клонирования нужен, а потом можно воспользоваться неплохой и довольно гибкой библиотекой http://code.google.com/p/cloning/, помимо глубокого клонирования она позволяет выполнять неглубокое, а также добавлять исключения, в случае, если требуется не клонировать экземпляры определенных классов. И да, при этом классам вовсе необязательно реализовывать какой-либо интерфейс.
|