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?
For Spring Framework users. Using class org.springframework.util.SerializationUtils:
org.springframework.util.SerializationUtils
@SuppressWarnings("unchecked") public static T clone(T object) { return (T) SerializationUtils.deserialize(SerializationUtils.serialize(object)); }