当前位置:  技术问答>java相关

关于Clone的问题。

    来源: 互联网  发布时间:2015-02-10

    本文导语:  有对象 A a = new A(); 但是A 并没有继承Cloneable. Vector aVec = new Vector(); aVec.add(a); Vector theVec = aVec.clone; 那这时theVec中放的是不是对象a呢? | 很遗憾,这么做只是对aVec的一个浅克隆,它不会...

有对象
A a = new A();
但是A 并没有继承Cloneable.

Vector aVec = new Vector();
aVec.add(a);
Vector theVec = aVec.clone;
那这时theVec中放的是不是对象a呢?

|
很遗憾,这么做只是对aVec的一个浅克隆,它不会尝试对a进行克隆.
所以放的还是a,而且是同一个对象a.
我想这可能不是你需要的.

|
是对象a,theVec只复制了引用

|
下面是小衲从java.util.Vector.java中摘出来的关于clone()的部分:

    public synchronized Object clone() {
try { 
    Vector v = (Vector)super.clone();
    v.elementData = new Object[elementCount];
    System.arraycopy(elementData, 0, v.elementData, 0, elementCount);
    v.modCount = 0;
    return v;
} catch (CloneNotSupportedException e) { 
    // this shouldn't happen, since we are Cloneable
    throw new InternalError();
}
    }

可以看出,真正的clone工作是由 System.arraycopy(...)做的,
但正如各位大侠施主所说,这是一个浅clone,只复制了reference


|
对,这是一个浅clone,如果要达到完全clone的目的,必须自己实现clone.

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • java命名空间java.text类stringcharacteriterator的类成员方法: clone定义及介绍
  • 在Java中什么是"Shallow clone"和"deep clone"?
  • java命名空间java.text类decimalformatsymbols的类成员方法: clone定义及介绍
  • about the Object.clone() ??
  • java命名空间java.text类dateformat的类成员方法: clone定义及介绍
  • 請教 : 如何複製一個對象 , clone() 不行, clone() 方法有甚麼作用?
  • java命名空间java.text类dateformatsymbols的类成员方法: clone定义及介绍
  • 创建进程的系统调用clone()和fork()
  • java命名空间java.util类locale的类成员方法: clone定义及介绍
  • 创建一个子进程,什么时候该用clone()而不是fork()?
  • java命名空间java.text类choiceformat的类成员方法: clone定义及介绍
  • clone()失败
  • java命名空间java.text类collator的类成员方法: clone定义及介绍
  • 给自己的类提供Clone方法
  • java命名空间java.text类numberformat的类成员方法: clone定义及介绍
  • 请给我讲讲clone()方法究竟怎么复制对象,小妹谢谢大虾们了!
  • java命名空间javax.swing.text类segment的类成员方法: clone定义及介绍
  • git只clone部分目录
  • java命名空间java.text类rulebasedcollator的类成员方法: clone定义及介绍
  • Vector包含的对象什么时候是可clone的?
  • java命名空间java.security.cert类pkixcertpathvalidatorresult的类成员方法: clone定义及介绍
  • 谁用hg clone成功下载过solaris源码没??


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3