使用java反射机制运行时进行Map和POJO的互相转换

欢迎进入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]

只有经历过地狱般的折磨,才有征服天堂的力量。

使用java反射机制运行时进行Map和POJO的互相转换

相关文章:

你感兴趣的文章:

标签云: