Groovyでマップのマップをディープコピーするにはどうすればよいですか? マップ キーは Strings または Ints です。値は、再帰的な方法で、文字列、プリミティブ オブジェクト、またはその他のマップです。
質問する
31281 次
5 に答える
32
簡単な方法は次のとおりです。
// 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()
}
于 2012-10-31T10:03:26.667 に答える
9
私もこの問題にぶつかったばかりで、次のことがわかりました。
deepCopy = evaluate(original.inspect())
Groovy でのコーディングは 12 時間未満ですが、evaluate
. また、上記はバックスラッシュを処理しません。これ:
deepCopy = evaluate(original.inspect().replace('\\','\\\\'))
します。
于 2013-07-30T22:35:24.553 に答える
4
私はあなたがそうしなければならないことを恐れていますclone
。Apache Commons Lang SerializationUtilsを試してみてください
于 2012-10-31T09:49:20.563 に答える