原型模式之 深度拷貝 工具類

看了 一些 原型模式,原來就是 深度拷貝,淺拷貝的。 工做了這麼久,說實話,我尚未真實使用過 拷貝的方法的。。。 特別是淺拷貝 更加不敢亂用了,萬一引用什麼的搞混了就麻煩了。並且 淺拷貝還得 實現 cloable 什麼的。 咱們的 對象bean 通常都是 實現 序列化而已。 更加用不上了。安全

###深拷貝使用 深拷貝就不同了,其實就是 相似於 new 對象, 比較安全,雖然 速度會慢不少。 但是 實際上是能夠 提交 開發效率的, 若是 一個 對象 不少屬性,我想 複製一個差很少的 對象出來。 若是是 new 的傳統方式,我得 get/set 好多代碼,,,個人天啊,這代碼量。。。並且容易出錯 因此之後遇到 這種bean屬性多的,就能夠考慮使用 深拷貝了。 下面是代碼code

public static Object deepClone(Object object) {// 將對象寫到流裏

	if (object == null) {
	
		return null;
		
	}
	try {
	
		ByteArrayOutputStream bo = new ByteArrayOutputStream();
		
		ObjectOutputStream oo = new ObjectOutputStream(bo);
		
		oo.writeObject(object);// 從流裏讀出來
		
		ByteArrayInputStream bi = new ByteArrayInputStream(bo.toByteArray());
		
		ObjectInputStream oi = new ObjectInputStream(bi);
		
		return (oi.readObject());
		
	} catch (ClassNotFoundException e) {
	
		e.printStackTrace();
		
	} catch (IOException e) {
	
		e.printStackTrace();
		
	}
	
	throw new NullPointerException("深拷貝異常");
	
}
相關文章
相關標籤/搜索