自定义BeanUtils的populate方法实现「建议收藏」

自定义BeanUtils的populate方法实现「建议收藏」1.1.1功能分析publicstaticvoidpopulate(Objectbean,Mapmap)//修改任意对象中的属性,为传入Map集合中的键和值思路:1.获取传入对象的字节码对象2.获取map集合中所有的键和值3.调用Class中的getDecl…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

1.1.1 功能分析

public static void populate(Object bean,Map map)

                                // 修改任意对象中的属性, 为传入Map集合中的键和值

                思路:

1. 获取传入对象的字节码对象

2. 获取map集合中所有的键和值

3. 调用Class中的getDeclaredField()方法将每一个键传入, 得到Field对象

4. 通过Field对象中的set方法赋值

5. Try catch捕获getDeclaredField方法可能发生的异常.(为了方式传入错误的值)

1.1.2 实例代码

//public static void populate(Object bean,Map map)
 
public static void populate(Object bean,Map map) throws ReflectiveOperationException {
 
//通过JavaBean对象来获取对应的字节码对象
 
Class clazz = bean.getClass();
 
//获取Map中所有的key
 
Set keys = map.keySet();
 
for (Object key : keys) {
 
 
try {
 
//根据key来获取对应的Field对象
 
Field f = clazz.getDeclaredField(key.toString());
 
//根据key来获取Map中对应的value
 
Object value = map.get(key);
 
 
f.setAccessible(true);
 
f.set(bean, value);
 
} catch(NoSuchFieldException e) {
 
//e.printStackTrace();
 
}
 
}
 
}

 

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

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

(0)
上一篇 2022年7月26日 下午8:00
下一篇 2022年7月26日 下午8:16


相关推荐

  • Earfcn与Frequency转换「建议收藏」

    Earfcn与Frequency转换「建议收藏」EARFCN:E-UTRAAbsoluteRadioFrequencyChannelNumber.FDL=FDL_low+0.1(NDL–NOffs-DL)FUL=FUL_low+0.1(NUL–NOffs-UL)

    2022年10月7日
    5
  • 【逆向】QQkey盗号木马原理分析

    【逆向】QQkey盗号木马原理分析一、简介QQkey是一段字符串,通过这段字符串在没有QQ登录密码的前提下你依然能够在浏览器中对别人QQ空间、邮箱等应用进行随意访问和操作。现在市面上已经有很多使用易语言编写的盗号木马,专门盗取别人的

    2022年8月1日
    17
  • (转)pyCharm最新2017激活码

    (转)pyCharm最新2017激活码来源:pyCharm最新2017激活码EB101IWSWD-eyJsaWNlbnNlSWQiOiJFQjEwMUlXU1dEIiwibGljZW5zZWVOYW1lIjoibGFuIHl1IiwiYXNzaWduZWVOYW1lIjoiIiwiYXNzaWduZWVFbWFpbCI6IiIsImxpY2Vuc2VSZXN0cmljdGlvbiI6IkZvciBlZHVjYXRpb25hbCB1c2U

    2022年8月27日
    56
  • OpenClaw实战教程系列第06篇 – 工具调用与 Skills:不只是聊天

    OpenClaw实战教程系列第06篇 – 工具调用与 Skills:不只是聊天

    2026年3月13日
    2
  • 在IIS上部署ASPNETMVC Beta网站[通俗易懂]

    在IIS上部署ASPNETMVC Beta网站[通俗易懂]在IIS上部署ASPNETMVCBeta网站在IIS上部署ASPNETMVCBeta网站,实际上和在IIS上部署其他类型的网站并没有太大的区别。个人觉得唯一比较有意思的是在配置IIS时,我们可以配置各种自定义的ISAPI扩展名(也在MVC应用配置的,通常在Global.asax中)第一步:安装MVC。当然,首先要下载MVCBeta,下载链接。安装的前提是.NETFramew

    2026年4月18日
    3
  • 霍夫变换直线检测(Line Detection)原理及示例

    霍夫变换直线检测(Line Detection)原理及示例霍夫变换直线检测 LineDetectio 原理及示例微信公众号 幼儿园的学霸个人的学习笔记 关于 OpenCV 关于机器学习 问题或建议 请公众号留言 给定一幅图像 一般为二值图像 中的点集合 如何检测直线 一种解决方法 任选一对点 决定一条线 然后测试所有其他点是否接近这条线 从而得出接近这条特殊线的所有点的子集 该方法比较复杂 另外一种方法便是采用霍夫变换 霍夫变换是图

    2026年3月19日
    3

发表回复

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

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