Java 深拷贝 浅拷贝 clone

时间:2023-01-23 19:51:32

深浅拷贝区别在于是否对引用对象实体实现了复制

 

默认的clone()为浅拷贝

完全深拷贝需要让类实现 Cloneable 接口并重写clone()调用父类的clone()方法

类中所有引用对象都要按实现上述两项 才可以做到对 类内引用对象的完全深拷贝

object中的clone方法为protected的 重写需改成public才能在外部调用

只要在克隆中含有没有实现Cloneable的对象 object的clone方法就会抛出一个clonenotsupportedexception 异常

需 throws 或捕获

 

序列化实现克隆深拷贝

 

拷贝list需要遍历new每个元素然后加入新list