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

Java中Object转Map类型,Map转Object类型前言在使用 Java 编程过程中 经常会遇到获取的数据为 Object 类型 但只是以这种方式传输 实质还是 Map 类型 此时就涉及到两种类型的相互转换 强制转换在类型转换工程中 常见的转换方式为强制转换 如 String map get key int map get key 等 但是如果接收的类型为 Map 此时强转 Map String Object obj 则会报出警告 治标不治本很多人会使用 SuppressWarn unchecked 来解决编辑器中的警告 好看是好 String Object

前言

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

强制转换

在类型转换工程中,常见的转换方式为强制转换。如(String)map.get(key),(int)map.get(key)等。但是如果接收的类型为Map,此时强转(Map

) obj
则会报出警告。

治标不治本

很多人会使用@SuppressWarnings(“unchecked”)来解决编辑器中的警告,好看是好看了。但是这用来告诉编译器忽略警告,而警告却实实在在的存在。项目的风险还是存在。

方法一

可以使用java.lang.reflect.Field类完成ObjMap之间的相互转换.

  • ObjectMap类型
//Object转Map public static Map<String, Object> getObjectToMap(Object obj) throws IllegalAccessException { 
    Map<String, Object> map = new HashMap<String, Object>(); Class<?> cla = obj.getClass(); Field[] fields = cla.getDeclaredFields(); for (Field field : fields) { 
    field.setAccessible(true); String keyName = field.getName(); Object value = field.get(obj); if (value == null) value = ""; map.put(keyName, value); } return map; } 
  • MapObject类型
//Map转Object public static Object getMapToObject(Map<Object, Object> map, Class<?> cla) throws Exception { 
    if (map == null) return null; Object obj = cla.newInstance(); Class<?> cla = obj.getClass(); Field[] fields = cla.getDeclaredFields(); for (Field field : fields) { 
    int mod = field.getModifiers(); if (Modifier.isStatic(mod) || Modifier.isFinal(mod)) { 
    continue; } field.setAccessible(true); if (map.containsKey(field.getName())) { 
    field.set(obj, map.get(field.getName())); } } return obj; } 

通过Field类进行数据类型的转换。

方法二

通过BeanUtils工具类进行转换

//1、map转换为object public static Object mapToObject(Map<String, Object> map, Class<?> cla)     throws Exception { 
    if (map == null) return null;   Object obj = clas.newInstance(); org.apache.commons.beanutils.BeanUtils.populate(obj, map); return obj; } //2、object转换为map public static Map<?, ?> objectToMap(Object obj) { 
    if (obj == null) return null; return new org.apache.commons.beanutils.BeanMap(obj); } 

总结

最后,通过调用这两个方法就可以实现Object转Map类型,Map转Object类型。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/207704.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 下午1:17
下一篇 2026年3月19日 下午1:17


相关推荐

  • Redfish协议测试工具–Postman

    Redfish协议测试工具–Postman1 工具和资料获取 2 简单使用说明 1 GET 类举例 2 PATCH 类举例 3 常见命令 1 工具和资料获取 Postman 工具获取服务器 Redfish 接口说明文档使用前必读接口文档中 适用的产品 查看自己的服务器是否支持此协议 2 简单使用说明 1 GET 类举例查看系统信息 SystemOvervi 查看文档 实操 2 PATCH 类举例首先获取指定用户信息 查看文档 要有 Etag 获取方式是通

    2025年9月24日
    5
  • 2021年CocoaPods安装方法

    2021年CocoaPods安装方法写在前面的话 在执行下面的任何步骤中遇到中断 进度缓慢 各种失败等问题时 请严格遵守以下原则 1 重试 重试 重试 没准多试几次就好了呢 2 切换为手机移动网络 已验证过多次 可行 3 上述方法不行的话那就走科学上网的通道吧 注意切换成全局模式 建议放最后试吧 反正我没试过 都是听别人说的 4 还是失败那就等等 在凌晨左右的时候会好很多 已验证过多次 可行 5 到这里还是不行 那就就得考虑下自己的人品问题了 其它问题 别说 别问 别喳喳 去找百度或者谷歌 它们懂得多

    2026年3月18日
    3
  • 不是单组分组函数

    不是单组分组函数问题:一:SELECT tablespace_name, SUM(bytes) freeFROM dba_free_space不是单组分组函数原因: 1、如果程序中使用了分组函数,则有两种情况可以使用:程序中存在group by,并指定了分组条件,这样可以将分组条件一起查询出来改为:  SELECT tablespace_name, SUM(bytes) freeFROM dba_free_spa…

    2022年6月30日
    32
  • 全民神祇你拜寿星我拜阎王免费阅读免费阅读无弹窗

    全民神祇你拜寿星我拜阎王免费阅读免费阅读无弹窗

    2026年3月14日
    2
  • JavaScript-事件之onmousemove

    JavaScript-事件之onmousemoveonmousemove 监听鼠标移动事件 注意 ie8 及 ie8 以下监听不到 event 所以要用 event window event 做一下兼容处理 clientX clientY 获取当前鼠标在指定标签内的可见横纵坐标位置 标签 onmousemove function event 兼容处理 if event event window event 或者

    2026年3月26日
    2
  • Python去重函数_python去重的方法

    Python去重函数_python去重的方法栗子1:利用setL1=(1,1,2,2,3,3)print(set(L1))结果为:{1,2,3}栗子2:利用np.uniqueimportnumpyasnpL1=(1,1,2,2,3,3)print(np.unique(L1))结果为:[123]栗子3:利用循环importnumpyasnpL1…

    2025年5月27日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号