博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
自定义BeanUtils的populate方法实现
阅读量:7109 次
发布时间:2019-06-28

本文共 788 字,大约阅读时间需要 2 分钟。

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://blog.51cto.com/13587708/2374127

你可能感兴趣的文章
Goland中Redis的set求并集的错误处理
查看>>
Timer
查看>>
ComboBox
查看>>
C++ sort()函数和C qsort()函数用法总结
查看>>
【图像处理】工业相机原理详述 (转载)
查看>>
【分布式】Zookeeper应用场景
查看>>
【堆】
查看>>
Asp.net基础概念整理(一) Web应用程序和网站的区别
查看>>
[02-02 ]Java数据库链接范列
查看>>
一些常用的Bootstrap模板资源站
查看>>
taro 填坑之路(二)taro 通过事件监听 实现组件间传值
查看>>
数组操作
查看>>
POJ 3613 Cow Relays
查看>>
20155222卢梓杰 课下测试04补做
查看>>
SQL注入
查看>>
怎么查看在centos中创建的用户组
查看>>
为什么说http协议是无状态协议
查看>>
[导入]Wap系统中Session信息保存问题解决方法
查看>>
动态输出javascript
查看>>
android_error
查看>>