Как я могу автоматизировать чтение свойств объекта из внешних источников (таких как файл) в Java? - PullRequest
0 голосов
/ 16 августа 2011

Мне было интересно, есть ли какой-нибудь способ, позволяющий автоматизировать обновление свойств объекта из какого-либо источника в виде файла или карты.

Для уточнения предположим, что у меня есть объект со свойствами x, y, width, height типа Float. И у меня есть карта с парой ключ-значение для свойств в виде <String, Float>. Чтобы обновить свойства объекта, я бы перебрал карту и сделал что-то вроде:

if (key.equals("x")) x = (Float) map.get(key);
else if(key.equals("y")) y = (Float) map.get(key);
else if(key.equals("width")) width = (Float) map.get(key);
else if(key.equals("height")) height = (Float) map.get(key);

Если я добавлю больше свойств в класс, мне придется продолжать добавлять код, подобный этому. Итак, мой вопрос в основном заключается в том, есть ли способ автоматизировать этот процесс, чтобы было легко добавлять новые свойства и обновлять их, как указано выше? Возможно с помощью аннотаций?

Спасибо, stormweaver

Ответы [ 2 ]

2 голосов
/ 16 августа 2011

Я бы сделал это, используя отражение ( проверьте эту ссылку ). Если каждый атрибут класса сопоставлен со свойством, вы можете получить все атрибуты класса и выполнить итерацию по ним правильно, чтобы обновить значения свойства. Таким образом, вам не нужно продолжать добавлять предложения if.

Помогает ли?

1 голос
/ 16 августа 2011

BeanUtils.populate(this, map) из commons-beanutils :

Заполните свойства JavaBeans указанного компонента на основе указанных пар имя / значение.

...