国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

Java中對象的序列化方式克隆詳解

2019-11-26 13:16:01
字體:
供稿:網(wǎng)友

Java 序列化技術(shù)可以使你將一個對象的狀態(tài)寫入一個Byte 流里,并且可以從其它地方把該Byte 流里的數(shù)據(jù)讀出來,重新構(gòu)造一個相同的對象。

簡述:

用字節(jié)流的方式,復(fù)制Java對象

代碼:

流克隆復(fù)制函數(shù)

public static Object deepClone(Object obj){  if(obj == null){   return null;  }  try {   ByteArrayOutputStream byteOut = new ByteArrayOutputStream();   Object cloneObj = null;   ObjectOutputStream out = new ObjectOutputStream(byteOut);   out.writeObject(obj);   ByteArrayInputStream byteIn = new ByteArrayInputStream(byteOut.toByteArray());   ObjectInputStream in = new ObjectInputStream(byteIn);   cloneObj = in.readObject();   return cloneObj;  } catch (Exception e) {   throw new RuntimeException(e);  } } 

ObjectClone.java

package test;  import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.io.Serializable;  public class ObjectClone {  /**   * 測試對象   */  private static class Person implements Serializable {   private String name;   private int age;   Person(String name, int age){    this.name = name;    this.age = age;   }   @Override   public String toString() {    return String.format("name: %s/nage: %s", name, age);   }  }    /**   * 測試函數(shù)   */  public static void main(String[] args) {   Person person = new Person("Henry", 22);   Person newPerson = (Person)ObjectClone.deepClone(person);   System.out.println(newPerson);  }    /**   * 工具類   *   * @param obj   * @return   */  public static Object deepClone(Object obj){   if(obj == null){    return null;   }   try {    ByteArrayOutputStream byteOut = new ByteArrayOutputStream();    Object cloneObj = null;    ObjectOutputStream out = new ObjectOutputStream(byteOut);    out.writeObject(obj);    ByteArrayInputStream byteIn = new ByteArrayInputStream(byteOut.toByteArray());    ObjectInputStream in = new ObjectInputStream(byteIn);    cloneObj = in.readObject();    return cloneObj;   } catch (Exception e) {    throw new RuntimeException(e);   }  } } 

測試結(jié)果:

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 本溪| 西宁市| 富裕县| 汝阳县| 金平| 通州区| 土默特左旗| 龙川县| 双江| 包头市| 健康| 西平县| 开原市| 开阳县| 蓬莱市| 桦川县| 沽源县| 肃宁县| 青铜峡市| 福建省| 宁安市| 万山特区| 东港市| 蒙山县| 育儿| 临湘市| 明水县| 兴宁市| 陵川县| 山阳县| 遂宁市| 库伦旗| 潮安县| 台湾省| 开鲁县| 汉中市| 建阳市| 北票市| 新宁县| 荆门市| 宜丰县|