对象深克隆实现
2018-02-23 16:22
218 查看
对象深克隆实现 - 序列化与反序列化
相信刚刚接触Java的大家肯定对引用对象的复制有套难言之隐这篇文章将分享如何强行将地址值的复制改成实体对象的复制
首先,百度上关于深浅克隆的介绍数不胜数,感兴趣的童鞋可以去看看,不感兴趣也可以不用看,我一句话概括一下:浅克隆是地址值的复制,深克隆是实体对象的复制。
下面是实现的一个小方法,所有通用
/** * 对象深克隆 * @param obj 需要克隆的对象 * @return 克隆完成的对象 */ public static Object deepClone(Object obj){ try { ByteArrayOutputStream byteOut = new ByteArrayOutputStream(); ObjectOutputStream objOut = new ObjectOutputStream(byteOut); objOut.writeObject(obj); ByteArrayInputStream byteIn = new ByteArrayInputStream(byteOut.toByteArray()); ObjectInputStream objIn = new ObjectInputStream(byteIn); return objIn.readObject(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } return null; }
PS:超级烦说了一大堆然后问题也一大堆,我要实现深克隆是为了克隆Vector对象,就复制个实体对象,还要写装饰类,一大堆包装有何意义呢。虽然不想这样做主要是我是嫌麻烦,懒,但是这样千篇一律的文章真的很让人抓狂。然后就分享了这个深克隆方法咯,最后,我想说:通用即正义,但我可是要向邪恶进发的人。
相关文章推荐
- 对象的克隆——原型模式(四):原型管理器的引入和实现,原型模式总结
- java对象 深度克隆(不实现Cloneable接口)和浅度克隆
- 一行代码实现纯数据json对象的深度克隆实现思路
- 使用JavaScript实现对象的深度克隆
- JavaScript实现对象克隆函数clone( )的程序及分析
- java之实现Cloneable接口的详解,克隆一个对象--对应有浅克隆和深克隆,概念结合代码深入理解
- java如何实现对象的克隆
- JS对象深度克隆实现
- 使用Object.create 克隆对象以及实现单继承
- 【JavaScript代码实现三】JS对象的深度克隆
- jQuery.extend克隆对象实现方法详解
- 对象序列化实现深度克隆
- 使用串行化来实现java对象的深克隆
- ****ife 递归实现深度克隆(内含JS数据类型判断,对象遍历)****
- java 引用数据类型实现 对象的克隆
- 使用对象输入输出流(ObjectOutputStream,ObjectInputStream)实现序列化对象的深度克隆
- javascript实现对象的克隆
- 实现对象的克隆
- Java实现克隆一个对象
- js实现对象完美克隆