/** * 将setting中的键值关系映射到对象中,原理是调用对象对应的set方法<br> * 只支持基本类型的转换 * * @param object 被调用的对象 * @throws SettingException */ public void toObject(String group, Object object) throws SettingException { try { Method[] methods = object.getClass().getMethods(); for (Method method : methods) { String methodName = method.getName(); if (methodName.startsWith("set")) { String field = StrUtil.getGeneralField(methodName); Object value = get(field, group); if (value != null) { Class<?>[] parameterTypes = method.getParameterTypes(); if (parameterTypes.length != 1) { continue; } Object castedValue = Conver.parse(parameterTypes[0], value); method.invoke(object, castedValue); log.debug("Parse setting to object field [{}={}]", field, value); } } } } catch (Exception e) { throw new SettingException("Parse setting to object error!", e); } }
/** * 获取double类型属性值 * * @param key 属性名 * @param group 分组名 * @param defaultValue 默认值 * @return 属性值 */ public Double getDouble(String key, String group, Double defaultValue) { return Conver.toDouble(get(key, group), defaultValue); }
/** * 获取波尔型型属性值 * * @param key 属性名 * @param group 分组名 * @param defaultValue 默认值 * @return 属性值 */ public Boolean getBool(String key, String group, Boolean defaultValue) { return Conver.toBool(get(key, group), defaultValue); }
/** * 获取long类型属性值 * * @param key 属性名 * @param group 分组名 * @param defaultValue 默认值 * @return 属性值 */ public Long getLong(String key, String group, Long defaultValue) { return Conver.toLong(get(key, group), defaultValue); }
/** * 获取数字型型属性值 * * @param key 属性名 * @param group 分组名 * @param defaultValue 默认值 * @return 属性值 */ public Integer getInt(String key, String group, Integer defaultValue) { return Conver.toInt(get(key, group), defaultValue); }