![JAR search and dependency download from the Maven repository](/logo.png)
com.starmcc.qmframework.tools.base.QmConvertUtil Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of qm-framework Show documentation
Show all versions of qm-framework Show documentation
springboot based on a series of packaging framework.
QmFramework to implements AOP,
rewrite the requestBody,
global exception catching,version checking,
request body parameter symmetric encryption mechanism,
controller packaging and the toolkit collection.
thank you for using it.
package com.starmcc.qmframework.tools.base;
import com.starmcc.qmframework.exception.QmFrameException;
import java.beans.BeanInfo;
import java.beans.IntrospectionException;
import java.beans.Introspector;
import java.beans.PropertyDescriptor;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* Map and Bean Tools
*
* @Author: qm
* @Date: 2019/7/17 17:33
*/
public class QmConvertUtil {
/**
* 将一个 Map 对象转化为一个 JavaBean
*
* @param map 包含属性值的 map
* @param type 要转化的类型
* @return 转化出来的 JavaBean 对象
*/
public static T mapToBean(Map map, Class type) {
try {
// 获取类属性
BeanInfo beanInfo = Introspector.getBeanInfo(type);
// 创建 JavaBean 对象
T obj = type.newInstance();
// 给 JavaBean 对象的属性赋值
PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors();
for (int i = 0; i < propertyDescriptors.length; i++) {
PropertyDescriptor descriptor = propertyDescriptors[i];
String propertyName = descriptor.getName();
if (map.containsKey(propertyName)) {
// 下面一句可以 try 起来,这样当一个属性赋值失败的时候就不会影响其他属性赋值。
Object value = map.get(propertyName);
Object[] args = new Object[1];
args[0] = value;
descriptor.getWriteMethod().invoke(obj, args);
}
}
return obj;
} catch (IntrospectionException e) {
throw new QmFrameException("IntrospectionException 分析类属性失败!");
} catch (InstantiationException e) {
throw new QmFrameException("IllegalAccessException 实例化 JavaBean 失败!");
} catch (IllegalAccessException e) {
throw new QmFrameException("IllegalAccessException 实例化 JavaBean 失败!");
} catch (InvocationTargetException e) {
throw new QmFrameException("InvocationTargetException 调用属性的 setter 方法失败!");
}
}
/**
* 将一个 List 中包含的 map 集合转化为一个 List 中包含的 JavaBean 集合
*
* @param maps 包含属性值的 mapList
* @param type 要转化的类型
* @param 转化出来的 JavaBean 对象 List
* @return
*/
public static List mapsToBeans(List
© 2015 - 2025 Weber Informatics LLC | Privacy Policy