我正在尝试将所有属性从一个bean复制到另一个bean:
public void copy(MyBean bean){
setPropertyA(bean.getPropertyA());
setPropertyB(bean.getPropertyB());
[..]
}
如果您有一个具有大量属性的bean,这很容易出错并且需要编写很多内容。
我正在考虑反思这样做,但我不能将吸气剂从一个物体“连接”到另一个物体的设定者。
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);
按预期工作!
答案 0 :(得分:5)
考虑使用Apache BeanUtils或Spring's BeanUtils。他们都有一个copyProperties()
方法,可以做你想做的事。
同样可以想象JDK's Object.clone()将为您提供所需的结果。请务必查看Javadoc和this SO post,以便了解其局限性。
答案 1 :(得分:-1)
如果您想手动执行此操作,我建议使用调用“序列化副本”的内容。一个限制是bean最实现Serializable接口。正如你所说,可以使用反射完成,但你可能会有更多的不便。 希望这有帮助。