【问题标题】:Making a copy of an object Dynamically?动态复制对象?
【发布时间】:2013-11-19 19:05:47
【问题描述】:

我的应用程序将我的 Web 服务响应存储到 WeakHashMap 中。 在我的应用程序中,我在 UI 中处理从 Web 服务返回的数据,并且由于对象被引用,它也修改了引用(在我的弱哈希图中)。

有没有办法将对象的副本存储到我的哈希图中而不是引用中,而不必在我的应用程序中的每个模型对象上实现 Clonable?

【问题讨论】:

    标签: java copy hashmap


    【解决方案1】:

    Kryo 允许以最小的努力进行序列化。它也应该非常有效,因为在sun.misc.Unsafe 的帮助下使用直接内存复制。从他们的快速开始:

    Kryo kryo = new Kryo();
    SomeClass someObject = ...
    SomeClass copy1 = kryo.copy(someObject);
    SomeClass copy2 = kryo.copyShallow(someObject);
    

    【讨论】:

    • 谢谢你试试看
    【解决方案2】:

    您可以使用序列化/反序列化来做到这一点。

    【讨论】:

    • ...这需要实现Serializable(和/或Externalizable)。
    • 是的,我不想每次添加新模型时都必须这样做
    • 唯一的另一种可能性是完全丑陋的不安全黑客,这需要您对对象的内部内存布局做出强有力的假设,并且可能会在下一次次要热点更新时中断..
    猜你喜欢
    • 2013-02-18
    • 1970-01-01
    • 1970-01-01
    • 2020-10-29
    • 2016-12-30
    • 2011-10-18
    • 2012-02-23
    • 2012-10-10
    • 1970-01-01
    相关资源
    最近更新 更多