Serializable Clone
import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; public abstract class SerializableClone { public static Object clone(final Object obj) throws Exception { ByteArrayOutputStream out = new ByteArrayOutputStream(); ObjectOutputStream oout = new ObjectOutputStream(out); oout.writeObject(obj); ObjectInputStream in = new ObjectInputStream(new ByteArrayInputStream(out.toByteArray())); return in.readObject(); } }