`
Eric_liu
  • 浏览: 89555 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

深拷贝方法的疑惑,欢迎大家讨论~

    博客分类:
  • JAVA
OO 
阅读更多
java 代码
  1. /**深拷贝对象  
  2.  * @return  
  3.  * @throws IOException  
  4.  * @throws OptionalDataException  
  5.  * @throws ClassNotFoundException  
  6.  */  
  7. public Object deepClone(Object obj) throws IOException, OptionalDataException,   
  8.         ClassNotFoundException {   
  9.     // write to stream   
  10.     ByteArrayOutputStream bo = new ByteArrayOutputStream();   
  11.     ObjectOutputStream oo = new ObjectOutputStream(bo);   
  12.     oo.writeObject(obj);   
  13.   
  14.     // read from stream   
  15.     ByteArrayInputStream bi = new ByteArrayInputStream(bo.toByteArray());   
  16.     ObjectInputStream oi = new ObjectInputStream(bi);   
  17.   
  18.     return (oi.readObject());   
  19. }  

 

把这个方法作为对象的深拷贝会有问题吗?

今天遇到一个怪问题, 对象2是对象1的深拷贝,然后对对象2做操作, 结果对象1的属性值发生了变化, 具体原因还没有找到...

 

 

 

附注: 这个方法没有问题,可以直接使用!但效率比较低点

分享到:
评论
7 楼 realdah 2007-08-13  
是否所有属性都是serializable?
6 楼 birdjavaeye 2007-08-11  
主要是transient的不拷贝了,自己做clone就可以拷贝transient东西
5 楼 不吃鱼的猫 2007-08-10  
问题没有,效率会慢一些
4 楼 litchi 2007-08-10  
这么做,和自己实现clone方法,得到的对象有什么区别吗
3 楼 Eric_liu 2007-08-10  
是我的问题,程序中对象的引用出现的问题.
2 楼 抛出异常的爱 2007-05-08  
有无static的东西在类中?
有无fainl的东西在类中?
有无侦听在实例中?
有无单例在实例中?
1 楼 dovecat 2007-05-08  
你把你的对象弄上来看看.
BTW:这样的深copy没问题.

相关推荐

Global site tag (gtag.js) - Google Analytics