【发布时间】:2013-11-19 19:05:47
【问题描述】:
我的应用程序将我的 Web 服务响应存储到 WeakHashMap 中。 在我的应用程序中,我在 UI 中处理从 Web 服务返回的数据,并且由于对象被引用,它也修改了引用(在我的弱哈希图中)。
有没有办法将对象的副本存储到我的哈希图中而不是引用中,而不必在我的应用程序中的每个模型对象上实现 Clonable?
【问题讨论】:
我的应用程序将我的 Web 服务响应存储到 WeakHashMap 中。 在我的应用程序中,我在 UI 中处理从 Web 服务返回的数据,并且由于对象被引用,它也修改了引用(在我的弱哈希图中)。
有没有办法将对象的副本存储到我的哈希图中而不是引用中,而不必在我的应用程序中的每个模型对象上实现 Clonable?
【问题讨论】:
Kryo 允许以最小的努力进行序列化。它也应该非常有效,因为在sun.misc.Unsafe 的帮助下使用直接内存复制。从他们的快速开始:
Kryo kryo = new Kryo();
SomeClass someObject = ...
SomeClass copy1 = kryo.copy(someObject);
SomeClass copy2 = kryo.copyShallow(someObject);
【讨论】:
您可以使用序列化/反序列化来做到这一点。
【讨论】:
Serializable(和/或Externalizable)。