Javadoc
Provides an interface for a variety of means to copy an arbitrary object. Any implementation of this interface must
return an exact copy of obj, preserving all aliasing across all objects reachable from obj. ReflectiveCopyException
must be thrown if the implementation cannot copy obj for some reason. Note that a trivial implementation of this
interface is possible (always return obj), but this is often not the desired implementation.