在groovy / java中实现复制或克隆

时间:2013-09-24 14:07:26

标签: java groovy

我有一种复制(克隆)方法,如下所示

static duplicateRecord(record)
{
    def copyRecord = [:]
    record.each{ fieldname, value ->
        if (value)
        {
            copyRecord [(fieldname)] = value?.clone()
        }
    }

    return copyRecord
}

我们在Groovy / java中是否有任何clone()方法来实现相同的功能?

2 个答案:

答案 0 :(得分:0)

我认为你需要实现Cloneable接口。 This帖子展示了如何在不实现Cloneable接口的情况下克隆Groovy中的对象,尽管我还没有对其进行测试。

答案 1 :(得分:0)

这应该这样做。

复制自:https://stackoverflow.com/a/13155429/889945

// standard deep copy implementation
def deepcopy(orig) {
     bos = new ByteArrayOutputStream()
     oos = new ObjectOutputStream(bos)
     oos.writeObject(orig); oos.flush()
     bin = new ByteArrayInputStream(bos.toByteArray())
     ois = new ObjectInputStream(bin)
     return ois.readObject()
}