package com.gx.obe.server.common.json; import java.lang.reflect.Field; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.util.ArrayList; import java.util.List; import java.util.Map; /** * @Description: 实体工具类 * @author mazc */ public class EntityUtill { /** * @Description: map 转对象 * @author mazc * @param * @param param * @param clazz * @return */ @SuppressWarnings("unchecked") public static T toBean(Map param , Class clazz){ Object value = null; @SuppressWarnings("rawtypes") Class[] paramTypes = new Class[1]; Object obj = null; try { //创建实例 obj = clazz.newInstance(); Field[] f = clazz.getDeclaredFields(); List flist = new ArrayList(); flist.add(f); Class superClazz = clazz.getSuperclass(); while(superClazz != null){ f = superClazz.getFields(); flist.add(f); superClazz = superClazz.getSuperclass(); } for (Field[] fields : flist) { for (Field field : fields) { String fieldName = field.getName(); value = param.get(fieldName); if(value != null){ paramTypes[0] = field.getType(); Method method = null; //调用相应对象的set方法 StringBuffer methodName = new StringBuffer("set"); methodName.append(fieldName.substring(0, 1).toUpperCase()); methodName.append(fieldName.substring(1, fieldName.length())); method = clazz.getMethod(methodName.toString(), paramTypes); method.invoke(obj, ConvertUtil.getValue(value.toString(), fieldName, paramTypes[0])); } } } } catch (InstantiationException e) { System.out.println(e.getMessage()); System.out.println("实例化 JavaBean 失败"); } catch (IllegalAccessException e) { System.out.println(e.getMessage()); System.out.println("分析类属性失败"); } catch (SecurityException e) { System.out.println(e.getMessage()); } catch (NoSuchMethodException e) { System.out.println(e.getMessage()); } catch (IllegalArgumentException e) { System.out.println(e.getMessage()); System.out.println("映射错误"); } catch (InvocationTargetException e) { System.out.println(e.getMessage()); } return (T)obj; } }