Java对象的深拷贝和克隆

在有的时候,我们希望对Java对象执行“深拷贝”。

在Java中,没有提供类似的C++的拷贝构造函数,但是提供了默认的”克隆”接口 Clonable。

如果我们要对一个只包含基础类型(int / long /String)的对象进行克隆,只需要实现Clonable并实现clone()函数即可。

如下:

如果要克隆一个引用了其他对象的Object,就要复杂一些了。

实际上,还可以通过序列化/反序列化、ApacheCommons的SerializationUtils进行深度拷贝。

参考文献:A guide to object cloning in java

 

Leave a Reply

Your email address will not be published.