背景

有时,我们需要将实体对象转成map,有时,我们需要将map转成实体对象,下面利用反射完成这样的转换

obj转map

思想:利用反射获取对象属性和属性值,设置到map中

/*** 实体对象转成Map* @param obj 实体对象* @return*/
public static Map<String, Object> object2Map(Object obj) {Map<String, Object> map = new HashMap<>();if (obj == null) {return map;}Class clazz = obj.getClass();Field[] fields = clazz.getDeclaredFields();try {for (Field field : fields) {field.setAccessible(true);map.put(field.getName(), field.get(obj));}} catch (Exception e) {e.printStackTrace();}return map;
}

map转obj

思想:根据实体属性找map中对应key的value,设置给实体属性,注意如果是static或final修饰的,不能设置值

/*** Map转成实体对象* @param map map实体对象包含属性* @param clazz 实体对象类型* @return*/
public static Object map2Object(Map<String, Object> map, Class<?> clazz) {if (map == null) {return null;}Object obj = null;try {obj = clazz.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;
}

Java中Object和Map的互转相关推荐

  1. Java中Object转Map类型,Map转Object类型

    前言 在使用Java编程过程中,经常会遇到获取的数据为Object类型,但只是以这种方式传输,实质还是Map类型,此时就涉及到两种类型的相互转换. 强制转换 在类型转换工程中,常见的转换方式为强制转换 ...

  2. java中map怎么遍历,Java中怎么遍历Map的所有的元素

    Java中怎样遍历Map的所有的元素 JDK1.4中 view plaincopy to clipboardprint? Map map = new HashMap(); Iterator it = ...

  3. Java中的映射Map - 入门篇

    前言 大家好啊,我是汤圆,今天给大家带来的是<Java中的映射Map - 入门篇>,希望对大家有帮助,谢谢 简介 前面介绍了集合List,这里开始简单介绍下映射Map,相关类如下图所示 正 ...

  4. java 子类tostring,JAVA中Object类的toString()方法,objecttostring

    JAVA中Object类的toString()方法,objecttostring toString public String toString() 返回该对象的字符串表示.通常,toString 方 ...

  5. java list for循环遍历_详解Java中list,set,map的遍历与增强for循环

    详解Java中list,set,map的遍历与增强for循环 Java集合类可分为三大块,分别是从Collection接口延伸出的List.Set和以键值对形式作存储的Map类型集合. 关于增强for ...

  6. java集合for循环_详解Java中list,set,map的遍历与增强for循环

    详解Java中list,set,map的遍历与增强for循环 Java集合类可分为三大块,分别是从Collection接口延伸出的List.Set和以键值对形式作存储的Map类型集合. 关于增强for ...

  7. java 怎么获取键的值_在 Java 中如何获取 Map 的所有键和值

    在 Java 中可以通过 map.entrySet() 方法获取 Map 的所有键和值. Map map = new HashMap<>(); // Get keys and values ...

  8. java中list和map详解

    java中list和map详解 一.概叙 List , Set, Map都是接口,前两个继承至Collection接口,Map为独立接口, List下有ArrayList,Vector,LinkedL ...

  9. Java实现Object和Map之间的转换

    Java实现Object和Map之间的转换 public class Obj2MapUtils {/*** 将Object类型的数据转化成Map<String,Object>* @para ...

最新文章

  1. “人脸识别”是一柄双刃剑 如何趋利避害?
  2. 信号回勾产生的原因_电力电缆故障原因及常用检测方法
  3. codeforces 15C. Industrial Nim
  4. ABP Framework V4.4 RC 新增功能介绍
  5. python tkinter进度条_在python3.7中更新tkinter进度条
  6. 怀念本科时代----科学入门的导师肖建华老师
  7. iOS build faad
  8. 拓端tecdat|基于贝叶斯模型的随机森林预测方法分析汽车燃油经济性
  9. spark 部署方式
  10. Matlab2018a破解出现licensing error:-8523
  11. Altium Designer入门教程:软件安装、中文设置与原件库配置
  12. 支付宝VS微信支付竞品分析
  13. 网页获取到的图片bease64编码,转化为二进制,进而保存为图片
  14. 生于80年代,穷于10年代,败于90后
  15. 基于C++和QT实现的简单数独游戏软件
  16. 支付与对账业务的流程
  17. 正则表达式:字符串替换
  18. sim900a 裸AT通过GPRS网络发送接收数据
  19. 【PAT甲级】1062 Talent and Virtue (25分)
  20. Python实现杨辉三角(2种实现方案)

热门文章

  1. 有c语言基础学python要多久-C语言是学python的基础吗?
  2. 【码农话健身】入门级胸部锻炼
  3. python循环代码
  4. Android——获得本地相册(返回拍照照片)
  5. win10计算机文件夹怎么关闭,Win10如何关闭显示最近打开的文件夹
  6. 图的建立、遍历及其应用(设图结点的元素类型为char,建立一个不少于8个顶点的带权无向图G,实现以下图的各种基本操作的程序)
  7. 使用springboot整合EasyExcel对excel类型的文件进行读写操作
  8. 人工智能:算法和数据
  9. Python列表条件求和方法
  10. mysql 插入中文数据显示 ? 号解决办法