版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qing_mei_xiu/article/details/86480720
java 克隆 对象
1.利用序列化和反序列化进行对象的深拷贝
不用实现clone,实现深度拷贝
package com.sinaif.model.admin;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
import com.sinaif.model.enums.ArbitCaseStatusEnum;
public class BaseBean implements Serializable{
/**
* 利用序列化和反序列化进行对象的深拷贝
* @return
* @throws Exception
*/
public Object deepClone() throws Exception{
//序列化
ByteArrayOutputStream bos = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(bos);
//
oos.writeObject(this);
//反序列化
ByteArrayInputStream bis = new ByteArrayInputStream(bos.toByteArray());
ObjectInputStream ois = new ObjectInputStream(bis);
return ois.readObject();
}
// public static void main(String[] args) {
// ArbitCaseBean case1 = new ArbitCaseBean();
// case1.setId("11111");
// case1.setCaptypeid("33343");
//
// try {
// ArbitCaseBean case2 = (ArbitCaseBean) case1.deepClone();
// case2.setId("22222");
// System.out.println(case1.toString());
// System.out.println(case2.toString());
// } catch (Exception e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
// }
//
// }
}