java类复制方法
时间: 2023-08-22 09:20:24 浏览: 60
在Java中,可以使用以下两种方式复制类:
1. 实现Cloneable接口并重写clone()方法
该方法利用Java中的原型模式来创建新对象,并将原对象的属性复制到新对象中。
示例代码:
```
public class MyClass implements Cloneable {
private int num;
private String str;
// 构造方法和其他方法
// 重写clone()方法
public MyClass clone() throws CloneNotSupportedException {
return (MyClass) super.clone();
}
}
```
使用时,调用对象的clone()方法即可创建新的对象:
```
MyClass obj1 = new MyClass();
MyClass obj2 = obj1.clone(); // 复制对象
```
2. 使用序列化和反序列化
该方法利用Java中的序列化和反序列化来实现对象的复制。
示例代码:
```
public class MyClass implements Serializable {
private int num;
private String str;
// 构造方法和其他方法
// 序列化方法
public byte[] serialize() throws IOException {
ByteArrayOutputStream out = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(out);
oos.writeObject(this);
return out.toByteArray();
}
// 反序列化方法
public static MyClass deserialize(byte[] data) throws IOException, ClassNotFoundException {
ByteArrayInputStream in = new ByteArrayInputStream(data);
ObjectInputStream ois = new ObjectInputStream(in);
return (MyClass) ois.readObject();
}
}
```
使用时,先将对象序列化为字节数组,再将字节数组反序列化为新对象:
```
MyClass obj1 = new MyClass();
byte[] data = obj1.serialize(); // 序列化对象
MyClass obj2 = MyClass.deserialize(data); // 反序列化对象
```