Способ вызова методов установки с использованием отражения на основе методов получения другого объекта - PullRequest
0 голосов
/ 18 марта 2020

У меня есть 2 связанных объекта

Один из них относится к классу Attribute, другой - что-то вроде контроллера того, что называется AddAttributeActionHandler

Объект Attribute в нем много полей, которые мне нужно установить в AddAttributeActionHandler Оба класса имеют геттеры и сеттеры, некоторые из них равны. и вызвать соответствующий метод установки для класса AddAttributeActionHandler

Другими словами, я могу выполнить следующее (вы можете назвать это «ручной» настройкой)

Attribute attributeObj = getAttributeObj();

String codeFromAttrObj = attributeObj.getCode();
String titleFromAttrObj = attributeObj.getTitle();


AddAttributeAction action = AddAttributeAction.create();

action.setCode(codeFromAttrObj);
action.setTitle(titleFromAttrObj);

Проблема в том, что есть так же, как 50+ полей. Я бы хотел, чтобы он был полностью автоматическим c.

Итак, я нашел следующий код для получения каждого доступного метода getli c для объекта Attribute

for (PropertyDescriptor propertyDescriptor : Introspector.getBeanInfo(attributeObj.getClass()).getPropertyDescriptors())
    {
        if(propertyDescriptor.getReadMethod().toString() != "null") 
        {
            String getterMethodName = propertyDescriptor.getReadMethod().toString();
            String getterMethodValue = propertyDescriptor.getReadMethod().invoke(attributeObj).toString());
        }      
    }

Приведенный выше код получает каждый доступный объект в объекте и печатает его значение.

Теперь мне нужно выяснить, существует ли соответствующий метод сеттера в объекте класса AddAttributeActionHandler и установить свойство, которое я получил от геттера, в объекте Attribute.

Возможно ли это?

Если да, пожалуйста, предоставьте любые подсказки.

Заранее спасибо!

...