/** * 将 Map对象转化为JavaBean * @return Object对象 */ public static <T> T convertMap2Bean(Map map, Class T) throws Exception { if(map==null || map.size()==0){ return null; } BeanInfo beanInfo = Introspector.getBeanInfo(T); T bean = (T)T.newInstance(); PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors(); for (int i = 0, n = propertyDescriptors.length; i <n ; i++) { PropertyDescriptor descriptor = propertyDescriptors[i]; String propertyName = descriptor.getName(); if (map.containsKey(propertyName)) { Object value = map.get(propertyName); BeanUtils.copyProperty(bean, propertyName, value); } } return bean; }
/** * 将 List<Map>对象转化为List<JavaBean> * @return Object对象 */ public static <T> List<T> convertListMap2ListBean(List<Map<String,Object>> listMap, Class T) throws Exception { List<T> beanList = new ArrayList<T>(); for(int i=0, n=listMap.size(); i<n; i++){ Map<String,Object> map = listMap.get(i); T bean = convertMap2Bean(map,T); beanList.add(bean); } return beanList; }
注意:实体字段类型为date时,会报类型转换的错误,解决方法搜:beanutil date 就有,因为我也没去试,所以就不贴代码了。