/**
* 用反射的方式装配对象(即给指定对象set值)
* @param po
* @param paramMap
* @param <T>
* @return
*/
public static <T extends Po> T createDataPojo(T po, Map<String,Object> paramMap){
Field[] fields = DyCreateBean.getFields(po.getClass());
Method method ;
try {
if(!Strings.IsNullOrEmpty(fields)){
for (Field field : fields) {
Object obj = paramMap.get(field.getName());
Class<?> klass = po.getClass();
String fieldName = field.getName();
String setFieldName = fieldName.substring(0,1).toUpperCase()+fieldName.substring(1);
if(!Strings.IsNullOrEmpty(obj)){
if(setFieldName.equalsIgnoreCase("id") || setFieldName.equalsIgnoreCase("codes")){
klass = klass.getSuperclass();
}
if(setFieldName.equalsIgnoreCase("id")){
if("0".equals(obj.toString())||null == obj)continue;
method = klass.getDeclaredMethod("set"+setFieldName, Object.class);
method.invoke(po, Castors.me().castTo(obj, Object.class));
}else{
method = klass.getDeclaredMethod("set"+setFieldName, field.getType());
method.invoke(po, Castors.me().castTo(obj, field.getType()));
}
}else
continue;
}
}
}catch (Exception e){
e.printStackTrace();
}
return po;
}