继承中的Serializable问题
为了实现深度克隆,一个最简单的办法就是让需要克隆的类全部实现Serializable,然后:
ByteArrayOutputStream byteArrOs = new ByteArrayOutputStream();
ObjectOutputStream objOs = new ObjectOutputStream(byteArrOs);
objOs.writeObject(this);
ByteArrayInputStream byteArrIs = new ByteArrayInputStream(byteArrOs.toByteArray());
ObjectInputStream objIs = new ObjectInputStream(byteArrIs);
Object deepCopy = objIs.readObject();
在实现的时候遇到一个问题,就是我的this的类的父类忘记增加implements Serializable,导致克隆出来的对象丢失了父类中的信息,解决方法当然也很简单了,在父类加上implements Serializable就行了。
所以用这个方式的时候一定要小心,就是你需要深度克隆的对象相关的所有对象都要implements Serializable,否则那部分不会被克隆,而且没有任何异常。那些类的子类也需要加上。
作者: Cherami
原载: 继承中的Serializable问题
版权所有。转载时必须以链接形式注明作者和原始出处及本声明。
日志评价
相关日志
- 暂时没有相关日志。
随机日志
添加到网摘
[del.icio.us] [新浪 VIVI] [365key] [YouNote] [博采中心] [Poco] [SOHU狐摘] [天极网摘] [和讯网摘]喜欢这个插件?

暂时没有评论
发表评论 | RSS订阅 | 反向链接