序列化和克隆
来源:互联网 发布:淘宝刷单违规 编辑:程序博客网 时间:2024/06/15 01:17
序列化和克隆
深度克隆的两种方式
(1)通过clone,并且克隆内部元素
- 克隆对象需要实现Cloneable接口
- 内部对象也要实现这个接口
- 克隆的时候要克隆内部对象
public class Person implements Cloneable { public Holder holder = new Holder(); @Override protected Object clone() throws CloneNotSupportedException { Person p= (Person) super.clone(); Holder holder=(Holder) holder.clone(); p.holder= holder; return p; }}class Holder implements Cloneable{ public String key = null; public Object value = null; @Override protected Object clone() throws CloneNotSupportedException { return super.clone(); }}
(2)通过序列化克隆
- 实现序列化Serializable接口
- 内部对象也要实现Serializable接口
- 对所有对象序列化
public class Worker implements Serializable { public Holder2 holder = new Holder2(); @Override protected Object clone() throws CloneNotSupportedException { try { ByteArrayOutputStream bos = new ByteArrayOutputStream(); ObjectOutputStream outputStream = new ObjectOutputStream(bos); outputStream.writeObject(this); ByteArrayInputStream bis = new ByteArrayInputStream(bos.toByteArray()); ObjectInputStream ois = new ObjectInputStream(bis); return ois.readObject(); } catch (IOException e) { return null; } catch (ClassNotFoundException e) { return null; } }}class Holder2 implements Serializable { public String key = null; public Object value = null;}
to be continue
0 0
- 序列化和克隆
- Java序列化和克隆
- JAVA对象克隆和序列化
- java对象克隆和序列化
- 对象克隆和对象序列化
- 序列化克隆对象
- 深克隆:使用序列化进行克隆
- Java对象的序列化和反序列化 克隆
- java 序列化和反序列化实现克隆
- Java序列化和克隆--对象深度拷贝
- 克隆Clone 与序列化
- 序列化实现深度克隆
- java序列化深度克隆
- 序列化与对象克隆
- 为克隆使用序列化
- 利用对象序列化深表克隆对象
- 利用对象序列化深表克隆对象
- java使用序列化实现深克隆
- C/C++学习(9)dynamic_cast<>强制转换
- php综合web开发(1)
- 实验六
- 1.3.ARM裸机第三部分-开发板、原理图和数据手册
- 【C语言】俄罗斯方块的源代码
- 序列化和克隆
- C语言中可变参数函数实现原理
- VTK交互之vtkCommand
- JerryLead机器学习汇总
- ASP.NET 教程之Web Pages II
- 选择python的理由?
- YII框架的事件机制
- java Data、String、Long三种日期类型之间的相互转换
- C#152课的主要内容