如何在Java中创建对象的深层副本? [英] How do you make a deep copy of an object in Java?

查看:552
本文介绍了如何在Java中创建对象的深层副本?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在java中,实现深层对象复制功能有点困难。你采取什么步骤来确保原始对象和克隆的一个共享没有引用?

In java it's a bit difficult to implement a deep object copy function. What steps you take to ensure the original object and the cloned one share no reference?

推荐答案

一种安全的方法是序列化对象,然后反序列化。这可确保一切都是全新的参考。

A safe way is to serialize the object, then deserialize. This ensures everything is a brand new reference.

这里有一篇关于如何有效地做到这一点的文章。

Here's an article about how to do this efficiently.

注意:类可以重写序列化,实例不是创建的,例如为单身。如果你的类不是Serializable,这当然不工作。

Caveats: It's possible for classes to override serialization such that new instances are not created, e.g. for singletons. Also this of course doesn't work if your classes aren't Serializable.

这篇关于如何在Java中创建对象的深层副本?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆