我正在尝试制作一个对象的深层副本,包括一个GregorianCalendar实例.我一直都很谨慎使用clone()它似乎没有在这里被覆盖,所以我只是按字段进行复制.理想情况下,有一个复制构造函数,我可以这样使用:
GregorianCalendar newCalendar = new GregorianCalendar(oldCalendar);
Run Code Online (Sandbox Code Playgroud)
不幸的是我在API中找不到任何这样的功能,并且试图弄清楚我需要哪些字段来获得精确的副本.那么,要复制其中一个日历,你会怎么做?我在这里错过了一些简单的快捷方式
一直试图找到实现制作Calendar对象防御性副本的方法的最佳方法.
例如:
public void setDate(Calendar date) {
// What to do....
}
Run Code Online (Sandbox Code Playgroud)
我特别关注在检查空输入和制作副本时是否存在线程交错,还是我错过了一些非常明显的东西?