Это довольно просто, используя commons-beanutils . Библиотека даже заботится о преобразованиях типов. Кроме того, вы можете даже установить свойства вложенных объектов и массивов.
public static void setProperties(Object bean, Properties properties) throws IllegalAccessException, InvocationTargetException, NoSuchMethodException {
for (Map.Entry<Object, Object> e : properties.entrySet()) {
if (e.getKey() instanceof String) {
BeanUtils.setProperty(bean, (String) e.getKey(), e.getValue());
}
}
}
Например, вы можете использовать файл свойств, подобный этому:
username=john
keys[0]=47
keys[1]=11
person.name=John
person.age=42
Ключи и возраст конвертируются в числа на лету. Массив ключей должен быть создан заранее, хотя и для Person.