/** * 将对象转化为map * * @param bean * @param <T> * @return */ private <T> Map<String, Object> beanToMap(T bean) { Map<String, Object> map = Maps.newHashMap(); if (bean != null) { BeanMap beanMap = BeanMap.create(bean); for (Object key : beanMap.keySet()) { map.put(key.toString(), beanMap.get(key)); } } return map; } /** * 将list<JavaBean>转化为List<Map<String, Object>> * * @param objList * @param <T> * @return */ private <T> List<Map<String, Object>> objectsToMaps(List<T> objList) { List<Map<String, Object>> list = Lists.newArrayList(); if (objList != null && objList.size() > 0) { Map<String, Object> map = null; T bean = null; for (int i = 0, size = objList.size(); i < size; i++) { bean = objList.get(i); map = beanToMap(bean); list.add(map); } } return list; }
主要就是
通过net.sf.cglib.beans.BeanMap类中的方法,原理几乎都是反射