Bean和Map转换的工具类

2023-11-05

Bean和Map转换的工具类

依赖包:

基于Spring的cglib 实现。如果是Spring项目,可以不引入依赖。

```
<dependency>
	<groupId>org.springframework</groupId>
	<artifactId>spring-core</artifactId>
	<version>5.3.8</version>
</dependency>
```

工具类如下:

import org.springframework.cglib.beans.BeanMap;
import java.util.HashMap;
import java.util.Map;


public class BeanMapUtil {

    /**
     * 将javaBean对象转换为map
     */
    public static <T> Map<String, Object> beanToMap(T bean) {
        Map<String, Object> map = new HashMap<>();
        if (bean != null) {
            BeanMap beanMap = BeanMap.create(bean);
            for (Object key : beanMap.keySet()) {
                Object value = beanMap.get(key);
                map.put(key + "", value);
            }
        }
        return map;
    }

    /**
     * 将map转换为javaBean对象
     * 注意:map的vaule类型,要与bean对应属性的类型一致
     */
    public static <T> T mapToBean(Map<String, Object> map, T bean) {
        if (map != null) {
            BeanMap beanMap = BeanMap.create(bean);
            beanMap.putAll(map);
        }
        return bean;
    }

}

使用示例:

public void testBeanToMap()  {
    Order order = Order.builder().id(1633376593701060610L).build();
    Map<String, Object> map = BeanMapUtil.beanToMap(order);
    System.out.println(map);
}


public void testMapToBean()  {
    Map<String, Object> map = new HashMap<>();
    //对应Order类的id字段为Long类型
    map.put("id", 12343276L);
    map.put("result", "testTest");
    Order order = new Order();
    BeanMapUtil.mapToBean(map, order);
    System.out.println(order);
}

参考资料:

https://blog.csdn.net/mybook201314/article/details/118336749https://www.zhihu.com/question/421708564

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Bean和Map转换的工具类 的相关文章

  • Java - 因内存不足错误而关闭

    关于如何最好地处理这个问题 我听到了非常矛盾的事情 并且陷入了以下困境 OOME 会导致一个线程崩溃 但不会导致整个应用程序崩溃 我需要关闭整个应用程序 但不能 因为线程没有剩余内存 我一直认为最佳实践是让它们离开 这样 JVM 就会死掉
  • 使用 JDBC 获取 Oracle 11g 的最后插入 ID

    我是使用 Oracle 的新手 所以我将放弃之前已经回答过的内容这个问题 https stackoverflow com questions 3131064 get id of last inserted record in oracle
  • 带有 Android 支持库 v7 的 Maven Android 插件

    我使用 maven android plugin 构建我的 android 应用程序 它依赖于 android 支持库 v4 和 v7 由于我没有找到如何从developer android com下载整个sdk 因此我无法使用maven
  • 从 MS Access 中提取 OLE 对象(Word 文档)

    我有一个 Microsoft Access 数据库 其中包含一个包含 Microsoft Word 文档的 OLE 对象字段 我试图找到代码来检索保存在 OLE 对象中的文件 以便用户可以从我的 JavaFx 应用程序中的按钮下载它 但没有
  • Android 中 localTime 和 localDate 的替代类有哪些? [复制]

    这个问题在这里已经有答案了 我想使用从 android API 获得的长值 该值将日期返回为长值 表示为自纪元以来的毫秒数 我需要使用像 isBefore plusDays isAfter 这样的方法 Cursor managedCurso
  • Android蓝牙java.io.IOException:bt套接字已关闭,读取返回:-1

    我正在尝试编写一个代码 仅连接到运行 Android 5 0 KitKat 的设备上的 目前 唯一配对的设备 无论我尝试了多少方法 我仍然会收到此错误 这是我尝试过的最后一个代码 它似乎完成了我看到人们报告为成功的所有事情 有人能指出我做错
  • 在 MongoDB 和 Apache Solr 之间同步数据的简单方法

    我最近开始使用 MongoDB 和 Apache Solr 我使用 MongoDB 作为数据存储 并且希望 Apache Solr 为我的数据创建索引 以实现应用程序中的搜索功能 经过一些研究 我发现 基本上有两种方法可以在 MongoDB
  • 如何使用正则表达式验证 1-99 范围?

    我需要验证一些用户输入 以确保输入的数字在 1 99 范围内 含 这些必须是整数 Integer 值 允许前面加 0 但可选 有效值 1 01 10 99 09 无效值 0 007 100 10 5 010 到目前为止 我已经制定了以下正则
  • 添加到列表时有没有办法避免循环?

    我想知道这样的代码 List
  • 通过 appassembler-maven-plugin 生成的脚本无法在 Spring Boot 应用程序中找到主类

    我使用 appassembler maven plugin 生成的启动脚本有问题 我有一个基本的 spring boot 应用程序 只有一个类 SpringBootApplication public class ScriptDemoApp
  • Java、Spring:使用 Mockito 测试 DAO 的 DataAccessException

    我正在尝试增加测试覆盖率 所以我想知道 您将如何测试 DAO 中抛出的 DataAccessExceptions 例如在一个简单的 findAll 方法中 该方法仅返回数据源中的所有数据 就我而言 我使用 Spring JdbcTempla
  • 如何从日期中删除毫秒、秒、分钟和小时[重复]

    这个问题在这里已经有答案了 我遇到了一个问题 我想比较两个日期 然而 我只想比较年 月 日 这就是我能想到的 private Date trim Date date Calendar calendar Calendar getInstanc
  • 我们如何测试包私有类?

    我正在看书Effective Java in Item 13 Minimize the accessibility of classes and members 它提到 为了方便测试 您可能想让类 接口或成员更易于访问 这在某种程度上是好的
  • IntelliJ 组织导入

    IntelliJ 是否具有类似于 Eclipse 中的组织导入功能 我拥有的是一个 Java 文件 其中多个类缺少导入 例子 package com test public class Foo public Map map public J
  • 如何从 Ant 启动聚合 jetty-server JAR?

    背景 免责声明 I have veryJava 经验很少 我们之前在 Ant 构建期间使用了 Jetty 6 的包装版本来处理按需静态内容 JS CSS 图像 HTML 因此我们可以使用 PhantomJS 针对 HTTP 托管环境运行单元
  • 无需登录即可直接从 Alfresco 访问文件/内容

    我的场景是这样的 我有一个使用 ALFRESCO CMS 来显示文件或图像的 Web 应用程序 我正在做的是在 Java servlet 中使用用户名和密码登录 alfresco 并且我可以获得该登录的票证 但我无法使用该票证直接从浏览器访
  • 如何处理 StaleElementReferenceException

    我正在为鼠标悬停工作 我想通过使用 for 循环单击每个链接来测试所有链接的工作条件 在我的程序中 迭代进行一次 而对于下一次迭代 它不起作用并显示 StaleElementReferenceException 如果需要 请修改代码 pub
  • HttpClient请求设置属性问题

    我使用这个 HttpClient 库玩了一段时间 几周 我想以某种方式将属性设置为请求 不是参数而是属性 在我的 servlet 中 我想使用 Integer inte Integer request getAttribute obj 我不
  • 将对象从手机共享到 Android Wear

    我创建了一个应用程序 在此应用程序中 您拥有包含 2 个字符串 姓名和年龄 和一个位图 头像 的对象 所有内容都保存到 sqlite 数据库中 现在我希望可以在我的智能手表上访问这些对象 所以我想实现的是你可以去启动 启动应用程序并向左和向
  • 即使调整大小,如何获得屏幕的精确中间位置

    好的 这个问题有两部分 当我做一个JFrame 并在其上画一些东西 即使我将宽度设置为 400 并使其在一个项目击中它时 当然 允许项目宽度 它会反弹回来 但由于某种原因 它总是偏离屏幕约 10 个像素 有没有办法解决这个问题 或者我只需要

随机推荐

  • OpenCV3.3中主成分分析(Principal Components Analysis, PCA)接口简介及使用

    OpenCV3 3中给出了主成分分析 Principal Components Analysis PCA 的实现 即cv PCA类 类的声明在include opencv2 core hpp文件中 实现在modules core src p
  • SAS9.4安装简易教程(保姆级)附带报错处理

    SAS安装教程 正常安装 环境准备 文件准备及安装 增强编辑器问题 一些报错处理方法 1 安装后处理 解决方案1 解决方案2 2 日期超过了SAS系统的最后截至日期 解决方案 3 逻辑库问题 解决方案 4 sid及产品许可问题 解决方案 卸
  • JT格式介绍(转换)

    JT Jupiter Tessellation 是一种高效 专注于行业且灵活的 ISO 标准化 3D 数据格式 由 Siemens PLM Software 开发 航空航天 汽车工业和重型设备的机械 CAD 领域使用 JT 作为其最领先的
  • 我的世界服务器无限刷东西指令,我的世界无限刷物品命令方块指令

    发布时间 2015 09 11 精华文章推荐 合成表大全 前期生存图文指南 怪物图鉴及属性一览 敖厂长生存解说视频 新手建筑指导班 豪华建筑建造教程 俾斯麦号建造方法 WE建筑辅助教程 创建服务器方法指南 加入服务器联机教程 多 标签 攻略
  • 学习实践-Alpaca-Lora (羊驼-Lora)(部署+运行+微调-训练自己的数据集)

    Alpaca Lora模型GitHub代码地址 1 Alpaca Lora内容简单介绍 三月中旬 斯坦福发布的 Alpaca 指令跟随语言模型 火了 其被认为是 ChatGPT 轻量级的开源版本 其训练数据集来源于text davinci
  • elasticsearch介绍

    什么是elasticsearch Elasticsearch是一个基于Lucene的搜索服务器 它提供了一个分布式多用户能力的全文搜索引擎 基于RESTful web接口 Elasticsearch是用Java语言开发的 并作为Apache
  • 知道这10个让你的API接口突然超时的原因吗?

    前言 不知道你有没有遇到过这样的场景 我们提供的某个API接口 响应时间原本一直都很快 但在某个不经意的时间点 突然出现了接口超时 也许你会有点懵 到底是为什么呢 今天跟大家一起聊聊接口突然超时的10个原因 希望对你会有所帮助 1 网络异常
  • CSS高级用法

    收藏一些css的高级用法 1 黑白图像 这段代码会让你的彩色照片显示为黑白照片 1 2 3 4 5 6 7 img desaturate filter grayscale 100 webkit filter grayscale 100 mo
  • java出现圅_java获取汉字拼音首字母A

    public class GetChinessFirstSpell 汉字拼音首字母列表 本列表包含了20901个汉字 用于配合 GetChineseSpell 函数使用 本表收录的字符的Unicode编码范围为19968至40869 南京
  • mac移动硬盘未装载解决方案

    一 现象 外置移动硬盘桌面不显示 只在磁盘工具应用中置灰显示 坑爹的是你无法进行任何操作只能查看详细信息 二 尝试解决方法 1 尝试了很多修复工具也没有用 包括Tuxera 因为你压根没有装载成功谈何其它操作 2 尝试手动装载 卸载 1 使
  • IC新人必看:芯片设计流程最全讲解!

    对于消费者而言 一个可以使用的系统 有数字集成电路部分 模拟集成电路部分 系统软件及上层应用部分 关于各个部分的功能 借用IC 咖啡胡总的精品图可以一目了然 外部世界是一个模拟世界 故所有需要与外部世界接口的部分都需要模拟集成电路 模拟集成
  • Kafka 入门三问

    目录 1 Kafka 是什么 1 1 背景 1 2 定位 1 3 产生的原因 1 4 Kafka 有哪些特征 消息和批次 模式 主题和分区 生产者和消费者 broker 和 集群 1 5 Kafka 可以做什么 Kafka作为消息系统 Ka
  • java开发中手动设置logback、jvm、容器的时区

    一 Logback xml配置日志输出时区为东八区 1 在日志格式配置后添加 CTT 或 GMT 8
  • electron 调试、问题追踪

    文章目录 前言 一 调试工具 1 生产环境调试工具 bugtron 2 日志 1 业务日志 2 网络日志 3 崩溃报告 二 捕获全局异常 1 开发网页时 2 在electron中全局异常捕获 3 从异常中恢复 保护用户界面 总结 前言 开发
  • Unity-世界坐标与屏幕坐标

    transform position x和transform position y的值含义是世界坐标 世界坐标与屏幕坐标有时一样 有时不同 这和Canvas的渲染模式有关 Canvas共有三种渲染模式 Screen Space Overla
  • 预处理等等

    预处理 define 宏定义是个演技非常高超的替身演员 但也会经常耍大牌的 所以我们用它要慎之又慎 它可以出现在代码的任何地方 从本行宏定义开始 以后的代码就就都认识这个宏了 也可以把任何东西定义成宏 因为编译器会在预编译的时候用真身替换替
  • Qt浅谈之一:内存泄露

    一 简介 Qt内存管理机制 Qt 在内部能够维护对象的层次结构 对于可视元素 这种层次结构就是子组件与父组件的关系 对于非可视元素 则是一个对象与另一个对象的从属关系 在 Qt 中 在 Qt 中 删除父对象会将其子对象一起删除 C 中del
  • 目标检测算法中,COCO评价指标的解析

    与图像分类的评价指标有所不同 图像分类是在所有的图像中分类正确和错误的概率 而目标检测显然不能这样来 那怎样才算检测正确 1 loU大于指定阈值 2 类别正确 3 confidence大于指定阈值 其实这三点在COCO评价指标当中都会运用到
  • AsyncContext优雅实现HTTP长轮询接口

    一 背景 接到一个需求 实现方案时需要提供一个HTTP接口 接口需要hold住5 8秒 轮询查询数据库 一旦数据库中值有变化 取出变化的值进行处理 处理完成后返回响应 这不就是长轮询吗 如何优雅的实现呢 二 方案设计 在 Spring 中
  • Bean和Map转换的工具类

    Bean和Map转换的工具类 依赖包 基于Spring的cglib 实现 如果是Spring项目 可以不引入依赖