-
Map转JavaBean
-
@param clazz
-
@param map
-
@param
-
@return
*/
public static T map2Bean(final Class clazz, final Map<String, ? extends Object> map) {
if (map == null) {
return null;
}
T res = null;
try {
res = clazz.getDeclaredConstructor().newInstance();
//获取到所有属性,不包括继承的属性
Field[] fields = clazz.getDeclaredFields();
for (Field field : fields) {
//获取字段的修饰符
int mod = field.getModifiers();
if (Modifier.isStatic(mod) || Modifier.isFinal(mod)) {
continue;
}
//设置对象的访问权限
field.setAccessible(true);
//根据属性名称去map 《一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》无偿开源 威信搜索公众号【编程进阶路】 获取value
if(map.containsKey(field.getName())) {
//给对象赋值
field.set(res, map.get(field.getName()));
}
}
} catch (Exception e) {
e.printStackTrace();
}
return res;
}
public static void main(String[] args) throws Exception {
HashMap<String, Object> map = new HashMap<>();
map.put(“id”, 1001);
map.put(“username”, “zhangsan”);
map.put(“password”, “123456”);
map.put(“nickname”, “张三”);
map.put(“email”, “369950806@qq.com”);
map.put(“gender”, true);
map.put(“birth”, LocalDate.now());
map.put(“avatar”, “/aa/bb/ab.jpg”);
map.put(“role”, “VIP”);
map.put(“status”, (byte) 1);
map.put(“salt”, “ldfkasjghweoiq324”);
map.put(“createTime”, LocalDateTime.now());
map.put(“updateTime”, LocalDateTime.now());
User user = map2Bean(User.class, map);
System.out.println(user);
Map<String, Object> res = bean2Map(user);
System.out.println(map);
}
}
User类的代码:
public class User {
private Integer id;
private String username;
private String password;
private String nickname;