* 深拷贝 */publicclassDeepCopyUtilimplementsSerializable{publicstatic<TextendsSerializable>TdeepCopy(Tobject){try{ByteArrayOutputStream baos=newByteArrayOutputStream();ObjectOutputStream oos=newObjectOutputStream(baos);oos.writeObject(object);ByteArrayInputStream bais=newByteArrayInputStream(baos.toByteArray...
每个对象都要实现Serializable接口,并编写一个静态方法进行深度拷贝。 importjava.io.*;publicclassDeepCopyUtil{// 深度拷贝方法publicstatic<T>TdeepCopy(Tobject){try{// 创建字节输出流ByteArrayOutputStreambyteOut=newByteArrayOutputStream();ObjectOutputStreamout=newObjectOutputStream(byteOut);// 将对象写入字...
public Object cloneObject(Object object) throws IOException, ClassNotFoundException { //将对象序列化 ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); ObjectOutputStream objectOutputStream = new ObjectOutputStream(outputStream); objectOutputStream.writeObject(object); //将字节反序列化 Byt...
import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.io.Serializable; /* 通过序列化实现深拷贝 */ public class DeepCopyBySerialization { public static void main(String[] args) throws IOException, ClassNotFoundException { Age a=new Age(20); Student stu1=new Student(...
Java中的对象拷贝(Object Copy)指的是将一个对象的所有属性(成员变量)拷贝到另一个有着相同类类型的对象中去。举例说明:比如,对象A和对象B都属于类S,具有属性a和b。那么对对象A进行拷贝操作赋值给对象B就是:B.a=A.a; B.b=A.b; 在程序中拷贝对象是很常见的,主要是为了在新的上下文环境中复用现有对象的...
Student{name='Tom', age=25} System.out.println("Copy: " + copy); // 输出 Copy: Student{name='John', age=20} } public static <T extends Serializable> T deepCopy(T object) { try { ByteArrayOutputStream baos = new ByteArrayOutputStream(); ObjectOutputStream oos...
address = address; } @Override protected Object clone() throws CloneNotSupportedException { // 首先进行浅拷贝 Person clonedPerson = (Person) super.clone(); // 对包含的引用类型成员变量进行深拷贝 clonedPerson.address = (Address) address.clone(); return clonedPerson; } } public class DeepCopy...
李斯维:一文掌握 Object 类里的所有方法(wait、notify、finalize)4 赞同 · 0 评论文章 我们将在例子中讲解这个方法和接口的使用。 浅拷贝(Shallow Copy) 浅拷贝创建一个新的对象,但是只复制原始对象的基本数据类型的字段或引用(地址),而不复制引用指向的对象。这意味着新对象和原始对象中的引用指向相同的对象,这...
importjava.io.*;publicclassMyClassimplementsSerializable{privateintid;privateString name;// 构造方法// getter和setter方法publicMyClassdeepCopy()throwsIOException, ClassNotFoundException{ByteArrayOutputStreambos=newByteArrayOutputStream();ObjectOutputStreamoos=newObjectOutputStream(bos); oos.writeObject(this)...
public Objectclone()throws CloneNotSupportedException{returnsuper.clone();}// getter和setter方法public StringgetCountry(){returncountry;}public voidsetCountry(String country){this.country=country;}public StringgetCity(){returncity;}public voidsetCity(String city){this.city=city;}} ...