1. 程式人生 > >動態轉換list的資料型別,將map型別的list轉成實體類型別的

動態轉換list的資料型別,將map型別的list轉成實體類型別的

	/**
	 * 將一個map組成的list轉成實體類bean組成的list
	 * @param mapList 存了map物件的list
	 * @param clazz 需要將這些map轉成哪個實體類物件
	 * @return
	 */
	public <T> List<T> convertMapListToBeanList(List<Map> mapList,Class<T> clazz){
		List<T> list=new ArrayList<T>();
		for(Map map:mapList){
			try {
				T obj=clazz.newInstance();//建立bean的例項物件
				for(Object o:map.keySet()){//遍歷map的key
					for(Method m:clazz.getMethods()){//遍歷bean的類中的方法,找到set方法進行賦值
						if(m.getName().toLowerCase().equals("set"+o.toString().toLowerCase())){
							m.invoke(obj, map.get(o));
						}
					}
				}
				list.add(obj);
			} catch (IllegalAccessException e) {
				e.printStackTrace();
			} catch (InvocationTargetException e) {
				e.printStackTrace();
			} catch (InstantiationException e) {
				e.printStackTrace();
			}
		}
		return list;
	}