java 使用BeanInfo实现bean实体与map之间的互相转换。

BeanInfo接口提供有关其 bean 的显式信息的 bean 实现者可以提供某个 BeanInfo 类,该类实现此 BeanInfo 接口并提供有关其 bean 的方法、属性、事件等显式信息。

例子:

map转实体

/**

* @param map

* @return

* @throws IllegalAccessException

* @throws IllegalArgumentException

* @throws InvocationTargetException

* @throws IntrospectionException

*/

private User mapTransformToBean(Map map) throws IllegalAccessException, IllegalArgumentException, InvocationTargetException, IntrospectionException{

User user=new User();

BeanInfo beanInfo = Introspector.getBeanInfo(user.getClass());

PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors();

for (PropertyDescriptor property : propertyDescriptors) {

String key = property.getName();

if (map.containsKey(key)) {

Object value = map.get(key);

//得到property对应的setter方法

Method setter = property.getWriteMethod();

setter.invoke(user, value);

}

}

return user;

}

实体转map

/**

* @param user

* @return

* @throws IllegalAccessException

* @throws IllegalArgumentException

* @throws InvocationTargetException

* @throws IntrospectionException

*/

private Map beanTransformToMap(User user) throws IllegalAccessException, IllegalArgumentException, InvocationTargetException, IntrospectionException{

Map map = new HashMap();

BeanInfo beanInfo = Introspector.getBeanInfo(user.getClass());

PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors();

for (PropertyDescriptor property : propertyDescriptors) {

String key = property.getName();

// 过滤class属性

if (!key.equals("class")) {

// 得到property对应的getter方法

Method getter = property.getReadMethod();

Object value = getter.invoke(user);

map.put(key, value);

}

}

return map;

}

java用beaninfo_java 可以使用BeanInfo实现bean实体与map之间的互相转换相关推荐

  1. 【java】之3种方式实现Object和Map之间的转换

    转载:[java]之3种方式实现Object和Map之间的转换 - 古越剑箫 - 博客园

  2. Java的object如何转为map_java实现Object和Map之间的转换3种方式

    java实现Object和Map之间的转换3种方式 发布时间:2020-10-17 18:42:04 来源:脚本之家 阅读:98 作者:古越剑箫 利用commons.BeanUtils实现Obj和Ma ...

  3. java实现bean实体与map集合相互转换

    方法一 //bean装换成map public static Map<?, ?> objectToMap2(Object obj) {           if(obj == null) ...

  4. list实体与map之间处理

    list实体对象值进行叠加处理 即:针对实体里某个属性出现的次数进行+1 具体实体: List<HealthyResponse> li = new ArrayList<Healthy ...

  5. 处理实体与Map<String,Object>、json之间的转换

    处理实体与map,json之间的转换 实体与Map 实体与Map<String,Object>的转换 直接看代码,如下: package com.liu;import java.lang. ...

  6. 关于JAVA Bean实体类对象pojo,vo,po,dto,entity之间的区别

    关于JAVA Bean实体类对象pojo,vo,po,dto,entity之间的区别: Pojo: Pojo 普通的java对象 最基本的javaBean只有属性 加上属性的get,set方法,可以转 ...

  7. Android中的两个Activity用Intent来传递java bean实体

    先定义java bean实体: public class MC_bean implements Serializable {private int code;private String messag ...

  8. 将JAVA bean/实体类 中为null的属性值转换成空字符串

    使bean中为null的属性转换成空字符串 获得getter方法 方法有分带参数和不带参数,我们知道getter方法是不带参数的 获得getter方法如下 Method m = model.getCl ...

  9. EJB 3.0中会话Bean,实体Bean,消息驱动Bean的作用和例子

    关键词:EJB 3.0,会话Bean,实体Bean,消息驱动Bean EJB 3.0规范使开发EJB比过去更容易,可能诱惑你考虑开发第一个EJB.如果真是这种情况,那么祝贺你,你已经成功避免了在你以前 ...

最新文章

  1. 敏捷开发中如何使用看板方法创造价值
  2. 纽大副教授炮轰NeurIPS、AAAI等顶会:无聊、就不该继续存在
  3. Virtual PC 使用指南
  4. applyBinding Observables
  5. (68)信号发生器DDS协议(第14天)
  6. Android:制作Update.zip升级包 【转】
  7. 修改VS2017打开在文件中查找窗口以及格式化代码的快捷键
  8. 2022年电子商务概论(农)之形考作业三
  9. mac terminal终端快速打开指定文件夹
  10. 遇到svn is already locked 解决办法
  11. 2015社交营销计划指南
  12. ADCS relay
  13. 数据有效性跨表引用的解决
  14. 海威计算机网络,海威分布式大屏幕显示控制系统的主要优点
  15. 马踏棋盘问题的程序c语言,C语言马踏棋盘
  16. 输入一个四位数将其加密后输出c语言,从键盘输入一个四位数-按如下规则加密后输出...
  17. 创建达梦到Oracle的DBLINK(OCI方式)
  18. 2020-10-23
  19. [FAST 2009]Cumulus:File System Backup to the Cloud
  20. android启动系统的图片裁剪工具

热门文章

  1. STL:list用法详解
  2. 芯片巨头英特尔放弃竞争迷你计算机市场
  3. 利剑无意之面试题(二)
  4. Hbase 02_伪分布式、完全分布式
  5. leetcode 442. Find All Duplicates in an Array | 442. 数组中重复的数据(位运算)
  6. 【人工智能导论】遗传算法求解TSP问题(含源码github)
  7. 汇编语言 masm常见报错原因
  8. 牛客网_PAT乙级1016_部分A+B (15)
  9. JavaScript JSON操作
  10. JVM系列之:JIT中的Virtual Call接口