/**
* @Class BeanUtils
* @Author: zhaoc
* @Version 1.0
* @Date: 2019-07-22
* @Description 类说明
**/
public class BeanUtils {
/****
* Map转Java对象
* @param paramMap
* @param clazz
* @return
* @throws Exception
*/
public static Object copyMapToObject(Map<String, Object> paramMap, Class clazz) throws Exception {
Object object = clazz.newInstance();
Field[] fields = clazz.getDeclaredFields();
if(fields != null && fields.length > 0) {
for(Field field : fields) {
String fieldName = field.getName();
String mapVal = StringHandler.getRequestStr(paramMap.get(fieldName));
if(mapVal != null) {
Object paramVal = null;
String fieldType = field.getType().getSimpleName();
if("Long".equals(fieldType)) {
paramVal = Long.valueOf(mapVal);
} else if("Integer".equals(fieldType)) {
paramVal = Integer.parseInt(mapVal);
} else if("BigDecimal".equals(fieldType)) {
paramVal = new BigDecimal(mapVal);
} else if("Date".equals(fieldType)) {
paramVal = DateUtils.parseDate(mapVal);
} else {
paramVal = mapVal;
}
ClassInvokeUtil.setFieldValue(object, fieldName, paramVal);
}
}
}
return object;
}
}
/**
* @Class ClassInvokeUtil
* @Author: zhaoc
* @Version 1.0
* @Date: 2019-07-22
* @Description 类说明
**/
public class ClassInvokeUtil {
public static void setFieldValue(Object obj, String fieldName, Object value) throws Exception {
String methodName = "set" + upperFirst(fieldName);
Method method = getTargetMethod(obj, methodName);
Object[] paramObj = {value};
method.invoke(obj, paramObj);
}
private static Method getTargetMethod(Object object, String methodName) {
Class clazz = object.getClass();
Method[] methods = clazz.getMethods();
for (int i = 0; i < methods.length; i++) {
if (methodName.equals(methods[i].getName())) {
return methods[i];
}
}
throw new RuntimeException("Invalid target method " + methodName
+ " In Class " + object);
}
private static String upperFirst(String name) {
return name.substring(0,1).toUpperCase() +
name.substring(1, name.length());
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/160754.html