欢迎进入Java社区论坛,与200万技术人员互动交流 >>进入
* 将Map形式的键值对中的值转换为泛型形参给出的类中的属性值
* t一般代表pojo类
*
* @param t
* @param params
*/
public static <T extends Object> void flushObject(T t, Map<String, Object> params) {
if(params == null || t == null)
return;
Class<?> clazz = t.getClass() ;
for(; clazz != Object.class ; clazz = clazz.getSuperclass()) {
try {
Field[] fields = clazz.getDeclaredFields() ;
for(int i = 0 ; i< fields.length;i++){
String name = fields[i].getName(); // 获取属性的名字
if(logger.isDebugEnabled())
logger.debug(ReflectUtils.class + “method flushObject attribute name:” + name + ” “);
Object value = params.get(name);
if(value != null && !””.equals(value)){
//注意下面这句,不设置true的话,不能修改private类型变量的值
fields[i].setAccessible(true);
fields[i].set(t, value);
}
}
}catch(Exception e){}
}
}
}
[1][2]
只有经历过地狱般的折磨,才有征服天堂的力量。