1

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

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

    return copyRecord
}

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

4

2 回答 2

0

我认为您需要实现Cloneable接口。 这篇文章展示了如何在不实现Cloneable接口的情况下在 Groovy 中克隆对象,尽管我没有测试过。

于 2013-09-24T14:22:38.847 回答
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()
}
于 2013-09-24T14:24:00.380 回答