看了 一些 原型模式,原來就是 深度拷貝,淺拷貝的。 工做了這麼久,說實話,我尚未真實使用過 拷貝的方法的。。。 特別是淺拷貝 更加不敢亂用了,萬一引用什麼的搞混了就麻煩了。並且 淺拷貝還得 實現 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("深拷貝異常"); }