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 static
T 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
