Я пытаюсь скопировать все свойства из одного боба в другой:Эффективный способ скопировать все свойства компонента в другой боб
public void copy(MyBean bean){
setPropertyA(bean.getPropertyA());
setPropertyB(bean.getPropertyB());
[..]
}
Это ошибки и много писать, если у вас есть фасоль с большим количеством свойства.
Я думал об отражении, чтобы сделать это, но я не могу «подключить» геттер от одного объекта к сеттеру другого.
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;
}
Edit:
BeanUtils.copyProperties(this, anotherBean);
Работы так же, как ожидалось!
И отражение защищено от ошибок? – GurV
@GurwinderSingh, спасибо за этот ценный комментарий. – kerner1000
В некоторых проектах я использовал [Orika] (http://orika-mapper.github.io/orika-docs/intro.html) и [Dozer] (https://github.com/DozerMapper/dozer). Однако я бы пошел с ручными картографами. Это не так сложно, и дело не в этом. Эти инструменты (Orika и Dozer) либо требуют конфигурации, либо делают ваш код зависимым от произвольных соглашений, и, хотя они помогают, я думаю, что цена за него очень высока. –