Get the Deep Copy of Any Object

Get the Deep Copy of Any Object

This generic class will help to obtain a deep copy of any object and cast it to the Object Type:

 public class ObjectCloner{   private ObjectCloner(){}   // returns a deep copy of an object   public static Object deepCopy(Object oldObj) throws Exception   {      ObjectOutputStream oos = null;      ObjectInputStream ois = null;      try      {         ByteArrayOutputStream bos =               new ByteArrayOutputStream(); // A         oos = new ObjectOutputStream(bos); // B         // serialize and pass the object         oos.writeObject(oldObj); // C         oos.flush(); // D         ByteArrayInputStream bin =               new ByteArrayInputStream(bos.toByteArray()); // E         ois = new ObjectInputStream(bin); // F         // return the new object         return ois.readObject(); // G      }      catch(Exception e)      {         System.out.println("Exception in ObjectCloner = " + e);         throw(e);      }      finally      {         oos.close();         ois.close();      }   }}


Share the Post: