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.Calendar
has overridden clone()
which is working, so use it. Furthermore, Calendar
doesn't have a deep data hierarchy — its data are mainly int
s.
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 implements Serializable
.
Specifically, the quickest line of code to copy a Calendar is:
GregorianCalendar newCalendar = (Calendar)(oldCalendar.clone());
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With