NestedBeanUtils.java package util;import java.lang.reflect.Field;import java.lang.reflect.Method;import java.util.ArrayList;import java.util.List;import java.util.Map;/** * 嵌套的BeanUtils * * @author 林万程 * @version 2017.10.2.2.30
package util; import java.lang.reflect.Field; import java.lang.reflect.Method; import java.util.ArrayList; import java.util.List; import java.util.Map; /** * 嵌套的BeanUtils * * @author 林万程 * @version 2017.10.2.2.30 */ public class NestedBeanUtils { /** * 获取单个Bean * @param clazz 需要返回的类名.class * @param map 数据源Map */ public staticT get(Class clazz, Map map) throws Exception { T object = clazz.newInstance(); Field[] Fields = clazz.getDeclaredFields(); for (Field field : Fields) { String fieldName = field.getName(); Object value = map.get(fieldName); // 如果找不到就【递归】找,封装到子类 if (value == null) { value = get(field.getType(), map); } String mothodName = "set" + fieldName.substring(0, 1).toUpperCase() + fieldName.substring(1); Method method = clazz.getDeclaredMethod(mothodName, field.getType()); method.invoke(object, value); } return object; } /** * 获取多个Bean * @param clazz 需要返回的类名.class * @param list 数据源Map的List */ public static List list(Class clazz, List