我正在尝试将所有属性从一个bean复制到另一种bean:
public void copy(MyBean bean){
setPropertyA(bean.getPropertyA());
setPropertyB(bean.getPropertyB());
[..]
}
这很容易出错,如果您有很多属性的豆子,请写很多。
我正在考虑做到这一点,但是我不能将getter从一个对象连接到另一个对象。
public List<Method> getAllGetters(Object object){
List<Method> result = new ArrayList<>();
for (final PropertyDescriptor propertyDescriptor : Introspector.getBeanInfo(object.getClass()).getPropertyDescriptors()) {
result.add(readMethod = propertyDescriptor.getReadMethod());
}
return result;
}
编辑:
BeanUtils.copyProperties(this, anotherBean);
正常工作!
考虑使用apache beanutils或春季的豆类。他们都有一个copyProperties()
方法,可以做您想要的。
也可以想象,jdk的object.clone()将为您带来所需的结果。请务必查看Javadoc,并因此发布此信息,以便您知道其局限性。
如果您想手动执行此操作,我建议使用所谓的"序列化副本"。一个限制是BEAN最实现可序列化的接口。正如您所说,可以使用反射来完成,但是您可能会带来更多不便。希望这有所帮助。