一、代码说明
基于apache的commons-beanutils包的org.apache.commons.beanutils工具类,实现BeanUtils.describe、BeanUtils.populate、beanutils.BeanMap实现对象和Map间相互转换。
二、代码示例
import org.apache.commons.beanutils.BeanUtils;@b@import java.util.HashMap;@b@import java.util.Map;@b@ @b@public class Util {@b@@b@ /**@b@ * 将对象转Map@b@ * @param obj@b@ * @return@b@ */@b@ public static Map<String, Object> convertToMap(Object obj) {@b@ try {@b@ if (obj instanceof Map) {@b@ return (Map)obj;@b@ }@b@ Map<String, Object> returnMap = BeanUtils.describe(obj);@b@ returnMap.remove("class");@b@ return returnMap;@b@ } catch (Exception e) {@b@ log.error("convertToMap error={}",e.getMessage(),e);@b@ }@b@ return new HashMap();@b@ }@b@@b@ /**@b@ * 将map转对象处理@b@ * @param map@b@ * @param beanInstance@b@ * @return@b@ */@b@ public static <T> T mapToObject(Map<String, Object> map, T beanInstance){@b@ if (map == null){@b@ return null;@b@ }@b@ Object obj = null;@b@ try {@b@ BeanUtils.populate(beanInstance, map);@b@ }catch (Exception e) {@b@ log.error("mapToObject error={}",e.getMessage(),e);@b@ }@b@ return beanInstance;@b@ }@b@@b@ /**@b@ * 转map处理@b@ * @param obj@b@ * @return@b@ */@b@ public static Map<?, ?> objectToMap(Object obj) {@b@ if(obj == null){@b@ return null;@b@ }@b@ try {@b@ return new org.apache.commons.beanutils.BeanMap(obj);@b@ } catch (Exception e) {@b@ log.error("objectToMap error={}",e.getMessage(),e);@b@ }@b@ return null;@b@ }@b@@b@@b@}