📄 recursiveclone.java
字号:
package net.betterjava.design.collection.deepcopy;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import net.betterjava.design.collection.shadowcopy.Visitor;
public class RecursiveClone {
private static void printList(List list) {
Iterator it = list.iterator();
while (it.hasNext()) {
System.out.println(it.next());
}
}
private static List copy(ArrayList list) throws CloneNotSupportedException {
List copyList = new ArrayList();
Iterator it = list.iterator();
while (it.hasNext()) {
copyList.add(((Visitor) it.next()).clone());
}
return copyList;
}
public static void main(String[] args) {
ArrayList list = new ArrayList();
list.add(new Visitor("Alex", "Fa Hua Zhen Road"));
list.add(new Visitor("Field", "Xiao Mu Qiao Road"));
try {
List copyList = copy(list);
((Visitor) copyList.get(0)).setAddress("Fan Yu Road");
printList(list);
printList(copyList);
} catch (CloneNotSupportedException e) {
e.printStackTrace(System.out);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -