java版本1.8
junit版本4.0
问题描述
打算使用序列化的方法深拷贝HashSet和里面的元素,形如HashSet,其中PhysicalObjet extends Serializable,单独创建这样的一个集合并深拷贝时一切正常,但是在Track类里面就会抛出异常。具体代码如下
序列化深拷贝方法:
public static <T> T deepClone(T obj) throws IOException, ClassNotFoundException {
ByteArrayOutputStream bos = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(bos);
oos.writeObject(obj);
ByteArrayInputStream bis = new ByteArrayInputStream(bos.toByteArray());
ObjectInputStream ois = new ObjectInputStream(bis);
return (T) ois.readObject();
}
Track部分代码
private final Set<PhysicalObject> objectSet;
/**
* 获取该轨道所有物体和对应的位置
* 前置条件:无
* 后置条件:返回物体集合的深拷贝set,防止rep exposure
*
* @return 物体的set
* @throws IOException 深拷贝
* @throws ClassNotFo