最近需要一个将 Map 转换成 Bean 的功能。
在网上搜到一种用反射实现的方法。
import java.lang.reflect.Field;
import java.lang.reflect.Modifier;
/**
* 将 Map 转换成 Bean,使用反射实现
*/
public static <T> T mapToObject(Map<String, Object> map, Class<T> beanClass) {
if ( map == null ) {
return null;
}
T obj = null;
try {
obj = beanClass.newInstance();
Field[] fields = obj.getClass().getDeclaredFields();
for (Field field : fields) {
int mod = field.getModifiers();
if (Modifier.isStatic(mod) || Modifier.isFinal(mod)) {
continue;
}
field.setAccessible(true);
field.set(obj, map.get(field.getName()));
}
} catch ( Exception e ) {
e.printStackTrace();
}
return obj;
}
调用方法: User u1 = mapToObject( map, User.class );