Редактировать: включите Bohzo propositon и уточнить вопрос: это больше о глубоком клонировании, чем мелком клонировании. тоже.
pro: < /strong> < /p>
- Контроль над тем, что будет выполнено < /li>
Быстрое выполнение
cons: < /strong> < /li>
paste, paste и presemplose, paste и presemploy, paste и presemport and save < /li>
paste. Перебрано измененное свойство) < /li>
< /ul>
Используйте отражение: < /h2>
С вашими собственными инструментами отражения или с внешним помощником (например, Jakarta Common-Beans) легко написать общий метод копирования, который будет выполнять работу в одной строке. /> Легко написать < /li>
Нет обслуживания
минусы: < /strong> < /li>
Меньше контроля того, что происходит < /li>
, склонной к ошибке с изменяемым объектом, если инструмент отражения не клонирует субъекты и < /li>
mlowable execution execution ul uk -execution ul> ul execution ul ul -execution ul ul -execution ul ul -execution ul ul execution ul ul -execution ul ul -execution ul your execution. />Use clone framework:
Use a framework that do it for you, like :
commons-lang SerializationUtils
Java Deep Cloning Library
Dozer
Kryo
pro:
same as reflection - more control over what will be exactly be cloned.
cons: - every mutable instance is fully cloned, even at the end of the hierarchy
- could be very slow to execute
javassit, bcel или cglib может использоваться для создания выделенного клонера так быстро, как одна рука. Кто -то знает, что LIB использует один из этих инструментов для этой цели? < /P>
Что я здесь пропустил?
Подробнее здесь: https://stackoverflow.com/questions/215 ... n-instance