Ejemplo n.º 1
0
 /**
  * 将实体对象转化为Map
  *
  * @param object 对象实例
  * @param bUnderscores 是否添加下划线
  * @param extendFields 拓充属性数组
  * @return
  */
 public static Map<String, Object> convertEntityToMap(
     Object object, boolean bUnderscores, String[] extendFields) {
   Class<?> instance = object.getClass();
   Field[] field = instance.getDeclaredFields();
   try {
     /* 获取类属性 */
     int length = field.length;
     Object[] fields = new String[length];
     for (int i = 0; i < length; i++) {
       fields[i] = field[i].getName();
     }
     fields = DPUtil.arrayMerge(fields, extendFields); // 拓充属性数组
     /* 获取属性键值对 */
     Map<String, Object> map =
         new LinkedHashMap<String, Object>(DPUtil.parseInt(fields.length / 0.75f));
     for (Object item : fields) {
       String name = DPUtil.parseString(item);
       name = name.substring(0, 1).toUpperCase() + name.substring(1);
       Method method = instance.getMethod("get" + name);
       Object value = method.invoke(object);
       if (bUnderscores) name = DPUtil.addUnderscores(name);
       map.put(name, value);
     }
     return map;
   } catch (Exception e) {
     return null;
   }
 }