I’m trying to make a deep copy of an object, including a GregorianCalendar instance. I’m always wary of using clone() and it doesn’t seem to have been overridden here, so I’m just doing the copy field by field. Ideally, there’d be a copy constructor, which I could use like so:
GregorianCalendar newCalendar = new GregorianCalendar(oldCalendar);
Unfortunately I can’t find any such functionality in the API and am stuck trying to figure out which fields I need to get an exact copy. So, to make a copy of one of these calendars, how would you do it? Am I missing some simple shortcut here?
java.util.Calendarhas overriddenclone()which is working, so use it. Furthermore,Calendardoesn’t have a deep data hierarchy — its data are mainlyints.To extend the answer, you can call
SerializationUtils.clone(…)(from Apache commons-lang) on any object which makes a deep copy, if the whole data hierarchy implementsSerializable.