1. 程式人生 > >map轉實體類(前提是實體類裡的欄位都是string)

map轉實體類(前提是實體類裡的欄位都是string)

/**

* @param map 需轉換的map物件
* @param beanName 轉後的bean型別(需寫包名加類名,否則類找不到),例:"gov.nbeic.nbzwy.entity.qualityerrorcount.QualityErrorCount"
* @return 
* @throws InstantiationException
* @throws IllegalAccessException
*/
public Object convertMayToBean(Map<String,Object> map,String beanName) throws InstantiationException, IllegalAccessException{
Class clazz = null;
try {
clazz= Class.forName(beanName);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
Object object = clazz.newInstance();

//獲得物件的所有屬性  
Field[] fields=clazz.getDeclaredFields();
for(int i=0;i<fields.length;i++){
String key = fields[i].getName();
if(map.containsKey(key)){
String tempKey = key.substring(0,1).toUpperCase()+key.substring(1,key.length());
try {
Method method = clazz.getMethod("set"+tempKey,new Class[]{fields[i].getType()});
Object args[] = new Object[1];
args[0] = String.valueOf(map.get(key));
method.invoke(object,args);
}catch (SecurityException e) {
e.printStackTrace();
} catch (NoSuchMethodException e) {
e.printStackTrace();
}catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
}



}

return object;
}