我有一个标记为可序列化的任意对象。它有各种可变的子对象,表示货币金额、集合等。我希望能够克隆这个对象,这样如果用户修改它然后恢复他们的操作,我可以用新的克隆替换该克隆。
这意味着我需要深层复制,因为我不希望用户对原始对象上出现的子对象进行更改(例如,从集合中添加/插入项目)。
这些对象没有实现 Cloneable,因为它们是自动生成的,所以我也无法添加这样的方法。
除了痛苦地手写深度克隆之外,还有什么办法可以在 GWT 中完成同样的任务吗?如果这是 Java,我可以考虑将对象序列化为字节数组流并反序列化一个新副本。
我在 GWT 中无法做到这一点。我可能可以利用 RPC,因为对象稍后会发送到 servlet。我只是不知道这是否容易做到。
有人知道我可以进行深层复制的简单方法吗?
如果您有机会向域类添加接口或注释,您可以使用gwt-ent http://code.google.com/p/gwt-ent/对于反射,你可以通过反射的方式轻松编写自己的深拷贝语义。我已使用此技术来提高开发模式下的 gwt 序列化性能。
作为另一个解决方案,您可以使用 gwt 默认序列化机制进行深度复制,但不幸的是我不知道如何实现这个目标。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)