import java.beans.PropertyDescriptor;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class Bean2MapUtil {
private Bean2MapUtil(){}
/**
* 把list转为beans
* @param result
* @return
*/
private static List toBeanList(List> result,@SuppressWarnings("rawtypes") Class classType){
List resulsBeans = new ArrayList();
Object obj;
try {
Field[] fields = classType.getDeclaredFields();
int i = 0;
if(result.size()>=3){
for(List item:result){
i++;
if(i<=2)continue;
obj = classType.newInstance();
for (int j = 0; j < fields.length; j++) {
//减三表示页面有三个隐藏域
PropertyDescriptor pd = new PropertyDescriptor(fields[j].getName(), classType);
Method wM = pd.getWriteMethod();//获得写方法
wM.invoke(obj, item.get(j));//
}
resulsBeans.add(obj);
}
}
} catch (Exception e) {
e.printStackTrace();
}
return resulsBeans;
}
/**
* 把beanlist转化为MapList
* @return
*/
@SuppressWarnings("rawtypes")
public static List beans2Maps(String filePath,Class classType){
List ret = new ArrayList();
ReadExcel03 e03 = new ReadExcel03();//读取excel
ReadExcel07 e07 = new ReadExcel07();
ReadExcelAdapter adapter = new ReadExcelAdapter(filePath, e03, e07);
List> result = adapter.readExcel();
List resulsBeans = toBeanList(result,classType);
try {
for(int i= 0;i < resulsBeans.size();i++){
Field[] fields = classType.getDeclaredFields();
Map tempMap = new HashMap();
for (int j = 0; j < fields.length; j++) {
//减三表示页面有三个隐藏域
PropertyDescriptor pd = new PropertyDescriptor(fields[j].getName(), classType);
Method wM = pd.getReadMethod();//获得写方法
tempMap.put(fields[j].getName(), wM.invoke(resulsBeans.get(i)));
}
ret.add(tempMap);
}
} catch (Exception e) {
e.printStackTrace();
}
return ret;
}
}