Java中Cloneable接口的用法
来源:互联网 发布:出去旅游哪个软件好 编辑:程序博客网 时间:2024/04/30 04:40
Java中Cloneable接口的用法
今天编写一个用到Cloneable接口的程序时才注意到原来clone()方法提供的是浅层拷贝,而不是我先前认为的深层拷贝。
class A implements Cloneable{
int a=1;
ArrayList b=new ArrayList();
public A getClone(){
return (A) this.clone();
}
}
对于这样的一个类,如果调用它的getClone()方法进行复制的话,成员变量a会被复制,但是成员变量b不会像预想的那样会复制一个ArrayList(),复制的对象与原先的对象中的b都会指向相同的一个ArrayList()。因此如果需要做深层拷贝需要添加额外的代码。
class A implements Cloneable{
int a=1;
ArrayList b=new ArrayList();
public A getClone(){
A temp=(A) this.clone();
temp.b=new ArrayList();
for(int i=0;i<b.size();i++){
temp.b.add(b.get(i));
}
return temp;
}
}
原始对象中的字符串和数组不受到克隆对象设置值的影响(会创建一个独立的),而类对象变量则会受到了克隆对象的影响。如list、map........ ;static修饰的也将是以引用的形式克隆
- Java中Cloneable接口的用法
- Java中Cloneable接口
- Java中Cloneable接口
- Java中Cloneable接口
- Java中Cloneable接口
- java中Cloneable接口
- Java中Cloneable接口
- java的Cloneable、Serializable接口
- Java中Serializable接口和Cloneable接口
- java中Cloneable与Serializable接口
- Java中 Cloneable 、Serializable 接口详解
- java中cloneable的使用
- 浅谈Java的标识接口-cloneable
- java.lang.Cloneable接口
- java中的Cloneable接口
- java 中的Cloneable 接口
- Java中的Cloneable接口
- JAVA中clone()方法与Cloneable接口详细说明
- Win7下Ant的安装与配置
- 修改tinyxml让其支持解析特殊字符
- Java - 反射
- 找增强
- s3c-tvscaler.h in backfire/target/linux/s3c64xx/files-2.6.36/drivers
- Java中Cloneable接口的用法
- Http协议中关于Content-Length的解读
- ofstream和ifstream详细用法
- dns智能解析对网站排名的影响
- tiny6410 在fedora 9下 的samba 配置很详细 (by 星空武哥)
- XMPP[编辑]维基百科,自由的百科全书
- MEF学习系列(5): 创建策略(Creation Policy)和生命周期(Life Cycle)
- programking的cs源代码详解
- htmlspecialchars 详解