Andrei Savu Andrei Savu -4 years ago 118
Java Question

How do you make a deep copy of an object in Java?

In java it's a bit difficult to implement a deep object copy function. What steps you take to ensure the original object and the cloned one share no reference?

Answer Source

A safe way is to serialize the object, then deserialize. This ensures everything is a brand new reference.

Here's an article about how to do this efficiently.

Caveats: It's possible for classes to override serialization such that new instances are not created, e.g. for singletons. Also this of course doesn't work if your classes aren't Serializable.

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download