/** * 将Properties中的键值关系映射到对象中,原理是调用对象对应的set方法<br> * 复杂类型需要用到ConvertUtil工具转换 * * @param bean 被映射的对象 * @param clazz 被映射对象的class * @return Bean */ public void toBean(Object bean, Class clazz) { Enumeration propertyNames = this.propertyNames(); while (propertyNames.hasMoreElements()) { String key = (String) propertyNames.nextElement(); if (ReflectionUtil.getField(clazz, key) != null) { Class typeClass = ReflectionUtil.getField(clazz, key).getType(); ReflectionUtil.setFieldValue(bean, key, ConvertUtil.convert(this.get(key), typeClass)); } } }
/** * 将setting中的键值关系映射到对象中,原理是调用对象对应的set方法<br> * 复杂类型需要用到ConvertUtil工具转换 * * @param bean Bean 目标对象 * @param group 组 * @param clazz 被映射对象的class * @return Bean */ public void toBean(Object bean, String group, Class clazz) { try { Map<String, String> map = this.getSetting(group); for (String key : map.keySet()) { if (ReflectionUtil.getField(clazz, key) != null) { Class typeClass = ReflectionUtil.getField(clazz, key).getType(); if ("Charset".equals(typeClass.getSimpleName())) { ConvertUtil.register(new CharsetConverter(), typeClass); } ReflectionUtil.setFieldValue(bean, key, ConvertUtil.convert(map.get(key), typeClass)); } } ConvertUtil.deregister(); } catch (Exception e) { e.printStackTrace(); } }