Я реализовал это сам:
Скопируйте код кода следующим образом:
публичный класс A реализует Cloneable {
общедоступная строка ул [];
А() {
ул = новая строка [2];
}
клон публичного объекта() {
А о = ноль;
пытаться {
о = (А) super.clone();
} catch (CloneNotSupportedException e) {
е.printStackTrace();
}
o.str = новая строка[2];
вернуться о;
}
}
void run() выдает исключение {
A a1 = новый A(), a2 = новый A();
а1.стр[0] = "а"; а1.стр[1] = "б";
а2 = (А) а1.клон();
а2.стр[0] = "с"; а2.стр[1] = "д";
System.out.println(a1.str[0] + " " + a2.str[0]);
}
результат:
переменный ток
1.
Скопируйте код кода следующим образом:
публичный класс A реализует Cloneable {
публичное имя строки;
клон публичного объекта() {
А о = ноль;
пытаться {
о = (А) super.clone();
} catch (CloneNotSupportedException e) {
е.printStackTrace();
}
вернуться о;
}
}
2.
Скопируйте код кода следующим образом:
публичный класс A реализует Cloneable {
публичное имя строки [];
общественный А () {
имя = новая строка [2];
}
клон публичного объекта() {
А о = ноль;
пытаться {
о = (А) super.clone();
} catch (CloneNotSupportedException e) {
е.printStackTrace();
}
вернуться о;
}
}
3.
Скопируйте код кода следующим образом:
публичный класс A реализует Cloneable {
публичное имя строки [];
общественный вектор<B>claB;
общественный А () {
имя = новая строка [2];
claB=новый вектор<B>();
}
клон публичного объекта() {
А о = ноль;
пытаться {
о = (А) super.clone();
} catch (CloneNotSupportedException e) {
е.printStackTrace();
}
o.name=new String[2];//клон глубины
o.claB=new Vector<B>();//Клонируем процесс до конца
for(int i=0;i<claB.size();i++){
B temp=(B)claB.get(i).clone();//Конечно, класс B также должен реализовать соответствующий метод клонирования
o.claB.add(темп);
}
вернуться о;
}
}