高手请进:如何克隆一个数组类型的成员变量? 直接克隆它的包装对象,只有保证数组存储的能被克隆对象本身也要能克隆java的克隆是深拷贝的。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 数组里存的是什么类型的变量?如果是基本类型,直接clone该对象就可以了如果不是,则要对每一个数组里的变量都调用clone才能做到深克隆,否则clone出来的都是引用,指的仍然是一个地址 我刚看了看一些资料,如此看来,是不是必须对需要克隆的所有成员变量(不包括基本类型)都要进行Cloneable的引用定义?(这意味着要修改变量类型的定义)然后在最外层类比如叫GClass的clone方法中逐个进行GClass.vOfClassA.clone(),GClass.vOfClassB.clone()调用? 没错,必须对类中及数组中的所有对象调用clone方法 如果需要clone整个数组,那通常一定是程序设计有问题了,呵呵“哪位有现成的代码能克隆数组的???”?具体问题具体对待。Effective Java和Core Java对clone讲的都不错,看看就明白了。protected native Object clone() throws CloneNotSupportedException;clone是jvm直接支持的机制。 这个写起来好像比较麻烦你不如实现Serializable接口把要clone的数组串行化然后在反串行化,得到的就是和原有对象完全相同,但所有地址都与原有对象不一样的一个新对象了 to goldenhua(深深地爱上了你) ----如果需要clone整个数组,那通常一定是程序设计有问题了,呵呵为何?能说说原因吗>? 我现在可以用数组复制了。不过数组的复制,不能在我要复制的clone中实现。只能单独调用。也就是说,用Cloneable接口实现的clone函数,是没有办法实现深度复制的。看来只要有复杂数据类型,clone函数基本就不好使了。 【求助】关于JAVA连接SQL server2000.问题。求好心人。100分 关于“请用移位的方式打印出一个十进制整数的十六进制形式”的问题。 J2SE最重要的是那些东西? JProgressBar 进度显示问题 匿名类是否可以呗其他类继承 因为长度不够,所以只是显示滚动条,上面没有滚动块,咋办? 大家帮我做一个微软面试题 关于线程!如何将定时器放在线程中 JBIUDER7.0使用问题,请指教!!! 请问句柄是什么意思?英文怎么讲? java初学者:关于库的问题 怎样将繁体子转换为简体字????
如果是基本类型,直接clone该对象就可以了
如果不是,则要对每一个数组里的变量都调用clone才能做到深克隆,否则clone出来的都是引用,指的仍然是一个地址
clone方法中逐个进行GClass.vOfClassA.clone(),GClass.vOfClassB.clone()调用?
“哪位有现成的代码能克隆数组的???”?具体问题具体对待。Effective Java和Core Java对clone讲的都不错,看看就明白了。
protected native Object clone() throws CloneNotSupportedException;
clone是jvm直接支持的机制。
你不如实现Serializable接口
把要clone的数组串行化
然后在反串行化,得到的就是和原有对象完全相同,但所有地址都与原有对象不一样的一个新对象了
----如果需要clone整个数组,那通常一定是程序设计有问题了,呵呵
为何?能说说原因吗>?