克隆需要实现Cloneable,Serializable 两个接口。
事例如下:
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
public class CloneTest implements Cloneable,Serializable {
private static final long serialVersionUID = 1L;
public CloneTest clone() {
CloneTest obj = null;
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ObjectOutputStream oos = null;
ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
ObjectInputStream ois = null;
try {
oos = new ObjectOutputStream(baos);
oos.writeObject(this);
ois = new ObjectInputStream(bais);
obj = (CloneTest)ois.readObject();
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
return obj;
}
}