2013-09-24 79 views
0

克隆我要複製(克隆)的方法如下實現複製或在Groovy/Java的

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

    return copyRecord 
} 

我們有在Groovy/Java的任何clone()方法來實現相同的功能?

+1

http://groovy.codehaus.org/gapi/groovy/transform/AutoClone.html –

+0

感謝您的答覆...有用 – Techie

回答

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() 
} 
+0

這不適用於靜態/瞬態字段! –

+0

Silviu,你說的對,雖然他們可以在'deepcopy'的實現中加入。 – aayoubi

+1

你是對的,但我只是想警告序列化過程及其輸出。 –

0

我想你會需要實現Cloneable接口。 This後顯示如何克隆Groovy中的對象而不實現Cloneable接口,但我沒有測試它。

+0

感謝您的答覆...有用 – Techie