代码之家  ›  专栏  ›  技术社区  ›  wds

克隆Gregoriancalendar的最快方法?

  •  25
  • wds  · 技术社区  · 14 年前

    我正试图对一个物体进行深度复制,包括 GregorianCalendar 实例。我总是小心使用 clone() 这里似乎没有被覆盖,所以我只是逐字段复制。理想情况下,应该有一个复制构造函数,我可以这样使用它:

    GregorianCalendar newCalendar = new GregorianCalendar(oldCalendar);
    

    不幸的是,我在api中找不到任何这样的功能,并且一直在试图找出需要获得准确副本的字段。所以,要复制一个日历,你会怎么做?我是不是错过了一些简单的捷径?

    3 回复  |  直到 8 年前
        1
  •  37
  •   Bozho    14 年前

    java.util.Calendar 已重写 clone() 这是有效的,所以使用它。此外, Calendar 没有深入的数据层次结构-其数据主要是 int S.

    你可以打电话给 SerializationUtils.clone(..) (从 commons-lang )如果整个数据层次结构实现 Serializable

        2
  •  1
  •   Everyone_Else    8 年前

    具体来说,复制日历最快的代码行是:

    GregorianCalendar newCalendar = (Calendar)(oldCalendar.clone());
    
        3
  •  -7
  •   piyo    13 年前

    休斯敦大学, clone() 烂透了。

    有那么难吗?我相信你只需要设定三件事,时间,时区和地点。所有这些字段都有getter和setter。制作一个非常实用的方法来返回副本?