http://www.mail-archive.com/commons-dev@jakarta.apache.org/msg43687.html
I see BeanUtils (package org.apache.commons.beanutils) currently has a cloneBean utility method to do shallow bean cloning. Sometimes it is useful to do a deep clone. Please find below a simple implementation. Can similar method be incorporated/provided in BeanUtils ?
Hanson
import java.io.ByteArrayOutputStream;
import java.io.ByteArrayInputStream;
import java.beans.XMLEncoder;
import java.beans.XMLDecoder;
/**
* Used to clone java beans.
*/
public class JavaBeanCopier {
/**
* Returns a deeply cloned java bean.
*
* @param fromBean java bean to be cloned.
* @return a new java bean cloned from fromBean.
*/
public static Object copy(Object fromBean) {
ByteArrayOutputStream bos = new ByteArrayOutputStream();
XMLEncoder out = new XMLEncoder(bos);
out.writeObject(fromBean);
out.close();
ByteArrayInputStream bis = new
ByteArrayInputStream(bos.toByteArray());
XMLDecoder in = new XMLDecoder(bis);
Object toBean = in.readObject();
in.close();
return toBean;
}
}
JavaBean深克隆实现
本文介绍了一种使用JavaBeans XMLEncoder和XMLDecoder实现JavaBean深克隆的方法。通过将对象序列化为XML字节流再反序列化,可以得到原始对象的一个独立副本。
168万+

被折叠的 条评论
为什么被折叠?



