帮我写个java对象深拷贝工具类
时间: 2023-06-03 08:01:41 浏览: 133
好的,我可以帮您写一个Java对象深拷贝工具类。以下是示例代码:
```
import java.io.*;
public class DeepCopyUtil {
public static <T extends Serializable> T deepCopy(T original) {
T copy = null;
try {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(baos);
oos.writeObject(original);
oos.close();
ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
ObjectInputStream ois = new ObjectInputStream(bais);
copy = (T) ois.readObject();
ois.close();
} catch (Exception e) {
e.printStackTrace();
}
return copy;
}
}
```
这个工具类使用序列化和反序列化来实现Java对象的深拷贝。您可以在程序中调用deepCopy方法将对象进行深拷贝,例如:
```
MyObject obj1 = new MyObject();
MyObject obj2 = DeepCopyUtil.deepCopy(obj1);
```
需要注意的是,要进行深拷贝的对象必须实现Serializable接口。另外,如果对象中包含其他对象的引用,那么这些对象也需要实现Serializable接口才能进行深拷贝。
阅读全文