由于Java有引用这一说,当两个变量指向同一块内存时,改变其中的一个变量值,则也会更改另外一个变量。如我们需要同时拥有两个内容相同,且独立的变量,则需要重新实例化这两个变量。
对于部分基本类已经实现clone方法,如ArrayList等。但还有些类未实现,如果我们自定义了一个类,也想调用clone方法,则需要实现Cloneable接口。代码如下:
public class A implements Cloneable {
public String str;
public Object clone() {
A o = null;
try {
o = (A) super.clone();
} catch (CloneNotSupportedException e) {
e.printStackTrace();
}
return o;
}
}
这样我们只需要调用clone方法就能复制一个内容相同的类了。使用如下:
A a1=new A();
A a2=(A)a1.clone();