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
       
       
      
     
    
   
  
        
        