Saya menerapkannya sendiri:
Copy kode kodenya sebagai berikut:
kelas publik A mengimplementasikan Cloneable {
String publik str[];
A() {
str = String baru[2];
}
klon Objek publik() {
A o = nol;
mencoba {
o = (A) super.clone();
} tangkapan (CloneNotSupportedException e) {
e.printStackTrace();
}
o.str = String baru[2];
kembali o;
}
}
void run() melempar Pengecualian {
A a1 = A baru(), a2 = A baru();
a1.str[0] = "a"; a1.str[1] = "b";
a2 = (A) a1.klon();
a2.str[0] = "c"; a2.str[1] = "d";
Sistem.keluar.println(a1.str[0] + " " + a2.str[0]);
}
hasil:
ac
1.
Copy kode kodenya sebagai berikut:
kelas publik A mengimplementasikan Cloneable {
nama String publik;
klon Objek publik() {
A o = nol;
mencoba {
o = (A) super.clone();
} tangkapan (CloneNotSupportedException e) {
e.printStackTrace();
}
kembali o;
}
}
2.
Copy kode kodenya sebagai berikut:
kelas publik A mengimplementasikan Cloneable {
nama String publik[];
publik A(){
nama=String baru[2];
}
klon Objek publik() {
A o = nol;
mencoba {
o = (A) super.clone();
} tangkapan (CloneNotSupportedException e) {
e.printStackTrace();
}
kembali o;
}
}
3.
Copy kode kodenya sebagai berikut:
kelas publik A mengimplementasikan Cloneable {
nama String publik[];
Vektor publik<B>klaB;
publik A(){
nama=String baru[2];
claB=Vektor baru<B>();
}
klon Objek publik() {
A o = nol;
mencoba {
o = (A) super.clone();
} tangkapan (CloneNotSupportedException e) {
e.printStackTrace();
}
o.name=String baru[2];//klon kedalaman
o.claB=Vektor Baru<B>();//Proses kloning sampai akhir
untuk(int i=0;i<claB.size();i++){
B temp=(B)claB.get(i).clone();//Tentu saja Kelas B juga harus mengimplementasikan metode kloning yang sesuai
o.claB.add(temp);
}
kembali o;
}
}