recursiveclone.java

来自「高质量Java程序设计 源代码」· Java 代码 · 共 40 行

JAVA
40
字号
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 + =
减小字号Ctrl + -
显示快捷键?