public class BeanUtils { /** * 2 * map转bean * 3 * @param source map属性 * 4 * @param instance 要转换成的备案 * 5 * @return 该bean * 6 */ public static <T> T map2Bean(Map<String, Object> map, Class<T> instance) throws Exception { try { T object = instance.newInstance(); //通过反射获取实体类下字段 Field[] fields = object.getClass().getDeclaredFields(); for (Field field : fields) { field.setAccessible(true); String key = field.getName(); if (key == "serialVersionUID" || key.contains("serialVersionUID")) { continue; } if (field.getType() == Integer.class) { //主键策略自动生成判断 if(map.get(key)==null){ field.set(object, map.get(key)); continue; } field.set(object, Integer.valueOf((Integer) map.get(key))); } else if (field.getType() == Double.class) { field.set(object, Double.valueOf((Double) map.get(key))); } else if (field.getType() == Date.class) { field.set(object, DateUtil.parsetodate(map.get(key).toString(),DateUtil.PATTERN_CLASSICAL)); } else if (field.getType() == String.class) { field.set(object, String.valueOf(map.get(key))); } else { field.set(object, map.get(key)); } } return object; } catch (InstantiationException | IllegalAccessException e) { e.printStackTrace(); } return null; } }
如何使用
StaffInformationEntity staffInformationEntity = BeanUtils.map2Bean((Map<String, Object>) map.get("staffInformationEntity"), StaffInformationEntity.class);
如果有更好的方法,请回复下互相学习下