Есть ли библиотека, которая может делать глубокие копии?
ex) обычный объект, массив, список, входной поток и т. Д.
@ Запись Конрада - точная. Единственный общий способ глубокого копирования - использовать механизм сериализации Java.
Очевидно, это дорого.
Другое предостережение в том, что некоторые объекты Java невозможно скопировать при сериализации. Примеры включают
Поток и подклассы не могут быть сериализованы, поскольку состояние выполнения потока не может быть сериализовано.
Потоки в общем случае не могут быть сериализованы, потому что вы не можете получить состояние потока, который уже был записан (записывающие устройства, выходные потоки) или который еще предстоит прочитать (читатели, входные потоки). (Действительно, в случае считывателя / входного потока это состояние может быть буквально бесконечным.)
Невозможно сериализовать компоненты графического интерфейса, поскольку они зависят от (внешней) графической среды, которую нельзя сериализовать.
Ищите сериализацию. Java поддерживает его из коробки, но вы также можете попробовать Hessian, Kryo ...
Вот введение в сериализацию Java: http://java.sun.com/developer/technicalArticles/Programming/serialization/
А вот тест, выполненный ребятами из Kryo: http://code.google.com/p/thrift-protobuf-compare/wiki/Benchmarking (список из 20 библиотек сериализации)
Может быть, вы можете взглянуть на Бульдозер .