使用反射将map转为对象,如果不使用反射的话需要一个get一个set写起来麻烦,并且不通用,所以写了一个通用的方法将map集合转为对象,直接看代码,注释也都挺清楚的

public static <T> T map2Object(Map<String, Object> map, Class<T> clazz) {

	    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

		if (map == null) {
return null;
}
T obj = null;
try {
// 使用newInstance来创建对象
obj = clazz.newInstance();
// 获取类中的所有字段
Field[] fields = obj.getClass().getDeclaredFields();
for (Field field : fields) {
int mod = field.getModifiers();
// 判断是拥有某个修饰符
if (Modifier.isStatic(mod) || Modifier.isFinal(mod)) {
continue;
}
// 当字段使用private修饰时,需要加上
field.setAccessible(true);
// 获取参数类型名字
String filedTypeName = field.getType().getName();
// 判断是否为时间类型,使用equalsIgnoreCase比较字符串,不区分大小写
// 给obj的属性赋值
if (filedTypeName.equalsIgnoreCase("java.util.date")) {
String datetimestamp = (String) map.get(field.getName());
if (datetimestamp.equalsIgnoreCase("null")) {
field.set(obj, null);
} else {
field.set(obj, sdf.parse(datetimestamp));
}
} else {
field.set(obj, map.get(field.getName()));
}
}
} catch (Exception e) {
e.printStackTrace();
}
return obj;
}

  

java 将map转为实体类的更多相关文章

  1. JAVA 中 Map 与实体类相互转换的简单方法

    1. 在 pom.xml 中引入依赖包 <dependency> <groupId>com.alibaba</groupId> <artifactId> ...

  2. 利用Java反射机制对实体类的常用操作工具类ObjectUtil

    代码: ObjectUtil类: import java.lang.reflect.Field; import java.math.BigDecimal; import java.text.Simpl ...

  3. java中循环遍历实体类的属性和数据类型以及属性值

    package com.walkerjava.test; import java.lang.reflect.Field; import java.lang.reflect.InvocationTarg ...

  4. java中如何遍历实体类的属性和数据类型以及属性值

      package com.walkerjava.test; import java.lang.reflect.Field; import java.lang.reflect.InvocationTa ...

  5. java解析导入excel表格转为实体类javabean,根据实体类中的中文名称

    最近公司需求解析excel,一开始使用poi做的挺好的,后来直接上了几十万条数据的excel文件,内存直接溢出了,网上查到apache poi还提供了专门处理海量数据的方法,使用sax解析,果然用了内 ...

  6. 【java】分页查询实体类

    package com.dmsd.itoo.tool.pageModel; import java.io.Serializable; import java.util.HashMap; import ...

  7. Java中entity(实体类)的写法规范

    在日常的Java项目开发中,entity(实体类)是必不可少的,它们一般都有很多的属性,并有相应的setter和getter方法.entity(实体类)的作用一般是和数据表做映射.所以快速写出规范的e ...

  8. C#中怎样连接数据库并将查询结果转为实体类以及如何加入事务

    场景 新建一个程序,需要对数据的表进行查询并将查询结果转换为实体类,然后将多个实体类 再插入到另一个数据库的表中,执行插入的过程中要使用事务. 注: 博客主页: https://blog.csdn.n ...

  9. map类型转为实体类

    BareBaseRequest fromJson = JSON.parseObject(JSON.toJSONString(map), BareBaseRequest.class);

随机推荐

  1. 微信小程序通过二维码获取参数运行

    小程序开发过程中会遇到参数id会通过二维码获取,然后执行接口获取数据,但是难免会遇到带过来的参数出现乱码,这样就需要解码,多个参数时就需要进行处理取我们需要的字段值:小程序开发过程中会遇到参数id会通 ...

  2. Redis服务之Redis5集群相关命令说明

    上一篇博客主要聊了下redis.trib.rb这个工具来管理redis3/4 cluster 中的节点,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/13456 ...

  3. MarkDown总结(适合初学者快速入门)

    本文转自https://blog.csdn.net/sun8112133/article/details/79871702 总得的来说,MarkDown是一种简单.轻量级的标记语法,它是基于HTML之 ...

  4. C#LeetCode刷题之#707-设计链表(Design Linked List)

    问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/4118 访问. 设计链表的实现.您可以选择使用单链表或双链表.单链 ...

  5. React 17 要来了,非常特别的一版

    写在前面 React 最近发布了v17.0.0-rc.0,距上一个大版本v16.0(发布于 2017/9/27)已经过去近 3 年了 与新特性云集的 React 16及先前的大版本相比,React 1 ...

  6. css3 属性 text-overflow 实现截取多余文字内容 以省略号来代替多余内容

    css3 属性 text-overflow: ellipsis 前言 正文 结束语 前言 我们在设计网站的时候有时会遇到这样一个需求:因为页面空间大小的问题,需要将多余的文字隐藏起来,并以省略号代替, ...

  7. springMVC入门(八)------拦截器

    简介 springMVC拦截器针对处理器映射器进行拦截配置 如果在某个处理器映射器中配置拦截,经过该处理器映射器映射成功的Handler最终使用该拦截器 由于springMVC支持配置多个处理器映射器 ...

  8. MySQL优化--IO调度算法优化

    之前已经在微信公众号分享了数据库优化的方法,链接为https://mp.weixin.qq.com/s/6Atzk9UKPJRxxAs0nsKBXg . 其中操作系统部分介绍了IO调度算法的优化,本文 ...

  9. phoenix PQS的kerberos相关配置

    thin 客户端的实例代码 jdbc:phoenix:thin:url=<scheme>://<server-hostname>:<port>;authentica ...

  10. SpringBoot输出日志到文件

    1 基本信息 SpringBoot版本2.2.5 日志框架SLF4J 日志框架的实现LockBack 2 输出文件的配置 2.1 logging.file.name 指定日志文件的位置. 2.1.1 ...