import java.lang.reflect.AccessibleObject; import java.lang.reflect.Field; import java.util.*; public class obj2Map { /** * 〈一句话功能简述〉将对象转为Map * 〈功能详细描述〉 * * @param obj 实体 * @return 对象Map * @throws Exception 类型转换异常 * @see [类、类#方法、类#成员] */ public static Map<String, Object> describeMap(Object obj) throws Exception { Map<String, Object> map = new HashMap<String, Object>(); if (null != obj) { Class clazz = obj.getClass(); List<Field> temp = getDeclaredFieldAll(clazz); Field[] fields = temp.toArray(new Field[temp.size()]); if (null != fields && fields.length > 0) { AccessibleObject.setAccessible(fields, true); for (Field field : fields) { map.put(field.getName(), field.get(obj)); } } } return map; } public static List<Field> getDeclaredFieldAll(Class clazz, String... filters) { Class superClass = Object.class; List<Field> fieldList = new ArrayList<Field>(); while (superClass != clazz) { fieldList.addAll(Arrays.asList(clazz.getDeclaredFields())); clazz = clazz.getSuperclass(); } if (filters != null) { int len = filters.length; for (int i = 0; i < len; i++) { String filter = filters[i]; int size = fieldList.size(); for (; size > 0; size--) { Field field = fieldList.get(size - 1); if (field.getName().equals(filter)) { fieldList.remove(field); } } } } return fieldList; } }