import java.io.*;
public class DeepCloneTest
{
public static void main(String args[]) throws Exception
{
Test test=new Test();
test.setAge(20);
test.setName("xiao");
StudentTest stu=new StudentTest();
stu.setAge(40);
stu.setName("teacher");
stu.setTest(test);
Object obj=stu.deepcopy();
StudentTest st=(StudentTest)obj;
}
}
class Test implements Serializable
{
private int age;
private String name;
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
class StudentTest implements Serializable
{
private int age;
private String name;
private Test test;
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Test getTest() {
return test;
}
public void setTest(Test test) {
this.test = test;
}
public Object deepcopy()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();
}
}
通过序列化的方式实现深clone
最新推荐文章于 2020-07-22 05:12:45 发布