深度克隆的简单通用实现
今天看ECS的源代码,发现一个深度克隆的简单通用实现,当然这个实现会克隆所有的成员,因此如果你的类有一些不能保存或者克隆的成员,那么这个就无效了,但是如果你的类就是简单的POJO,那么这个还是不错的,正在为我的持久层的克隆发愁,这个应该是我正想要的。我也相信这个对很多人一样有用,虽然性能可能不是很好:
/**
Allows all Elements the ability to be cloned.
*/
public Object clone()
{
try
{
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ObjectOutputStream out = new ObjectOutputStream(baos);
out.writeObject(this);
out.close();
ByteArrayInputStream bin = new ByteArrayInputStream(baos.toByteArray());
ObjectInputStream in = new ObjectInputStream(bin);
Object clone = in.readObject();
in.close();
return(clone);
}
catch(ClassNotFoundException cnfe)
{
throw new InternalError(cnfe.toString());
}
catch(StreamCorruptedException sce)
{
throw new InternalError(sce.toString());
}
catch(IOException ioe)
{
throw new InternalError(ioe.toString());
}
}
作者: Cherami
原载: 深度克隆的简单通用实现
版权所有。转载时必须以链接形式注明作者和原始出处及本声明。
日志评价
相关日志
- 暂时没有相关日志。
随机日志
添加到网摘
[del.icio.us] [新浪 VIVI] [365key] [YouNote] [博采中心] [Poco] [SOHU狐摘] [天极网摘] [和讯网摘]喜欢这个插件?

暂时没有评论
发表评论 | RSS订阅 | 反向链接