我正在尝试制作一个对象的深度副本,其中包括一个GregorianCalendar
实例。我总是谨慎使用clone()
,并且它似乎没有在这里被重写,因此我只能逐个字段地进行复制。理想情况下,会有一个复制构造函数,我可以像这样使用:
GregorianCalendar newCalendar = new GregorianCalendar(oldCalendar);
很不幸,我在API中找不到这样的功能,而且一直在尝试弄清楚我需要哪些字段才能得到完全相同的副本。因此,要复制其中一个日历,您会如何操作?我是否错过了某些简单的快捷方式?
clone()
方法。在这种情况下,我只是遵循Joshua Bloch的建议,进行防御性拷贝。由于clone()
可能会调用子类的clone()
方法,所以我可能会得到一个非干净的副本。在我的情况下有点学术性,但这就是我为什么避免使用它的原因。 - wdsCalendar
中的克隆方法也能正常工作。 - Bozho