JAVAMap转换为Bean或VO

JAVA Map 转换为 Bean 或 VOJava.util 中的集合类包含 Java 中某些最常用的类。Map 提供了一个更通用的元素存储方法。 Map 集合类用于存储元素对(称作“ 键”和“ 值”),其中每个键映射到一个值,在 java 编程中使用的相当之多。但是当我们进行业务逻辑或数据库处理时,往往应用的是自己框架独有的Bean 或 VO 来存储数据,这就需要我们应用一个公共方法来将 map 中存储的数据转换为相对应的 Bean或 VO,主要用到技术就是 java 的反射机制。具体代码如下该方法主要传入的参数有两个,第一个是 Map 接口,第二个就是要绑定的 VO。public static void mapBindMap map,PmsBaseVO pmsVo throws Exception获得传入 vo 的 Class 方法Class newClass pmsVo.getClass;得到 vo 中所有的成员变量Field fs newClass.getDeclaredFields;方法变量String Name null;map 的 value 值Object mapValue null;参数类型String parameterType null;查找方法时需要传入的参数Class parameterTypes new Class1;执行 invoke 方法时需要传入的参数Object args new Object1;取得 Map 的迭代器Iterator it map.keySet.iterator;while it.hasNext 取出 map 的 key 值String key Stringit.next; ifkey nullforint i0;ifs.length;iifkey.equalsfsi.getName拼 set 方法名Name set key.replaceFirstkey.substring0, 1,key.substring0, 1.toUpperCase;try 得到 vo 中成员变量的类型parameterTypes0 fsi.getType;parameterType parameterTypes0.toString;找到 vo 中的方法 newClass.getDeclaredName,parameterTypes;mapValue map.getkey;下面代码都是参数类型是什么,如果有需求可以自行增加当 set 方法中的参数为 int 或者 IntegerifparameterTypes0 Integer.class parameterTypes0 int.classifmapValue instanceof Integerargs0 mapValue;elseargs0 Integer.parseIntStringmapValue;当 set 方法中的参数为 Dateelse ifparameterTypes0 Date.classifmapValue instanceof Dateargs0 mapValue;elseSimpleDateat sdf new SimpleDateatyyyy-MM-dd;args0 sdf.parseStringmapValue;当 set 方法中的参数为 Floatelse ifparameterTypes0 double.class parameterTypes0 Double.classifmapValue instanceof Doubleargs0 mapValue; elseargs0 Double.parseDoubleStringmapValue;当 set 方法中的参数为其他 else if parameterTypes0 String.classifmapValue instanceof StringString tempArray StringmapValue;String result ;forint m0;mtempArray.length;mresult result tempArraym ,;result result.substring0, result.length-1;args0 result;elseargs0 StringmapValue;else args0 mapValue;执行 set 方法存储数据.invokepmsVo, args; catch SecurityException e throw new SecurityExceptionmapBind安全异常 e; catch NoSuchException e throw new NoSuchExceptionmapBindVo 中无此方法异常 e; catch IllegalArgumentException e throw new ExceptionVO 中key属性类型parameterType与 Map 中值为mapValue的类型不匹配; catch IllegalAccessException e throw new IllegalAccessExceptionmapBindIllegalAccessException 异常; catch ParseException e throw new ParseExceptionmapBindParseException 异常, 0;

map 转换成vo_JAVAMap转换为Bean或VO相关推荐

  1. java vo转map_JAVA Map转换为Bean或VO

    JAVA Map 转换为 Bean 或 VO Java.util 中的集合类包含 Java 中某些最常用的类. Map 提供了一个更通用的元素存储方 法. Map 集合类用于存储元素对(称作 &quo ...

  2. MapStruct Map 转换成对象

    背景 调用公司影像识别服务接口,返回值都是 Map<String,Object>类型,有的key很多.想把这种 map 结果转为项目中对应的JavaBean如DTO 或者 VO,又不想写很 ...

  3. java 把map转换成json_map转换成JSON的3种方法

    1 json-lib net.sf.json-lib json-lib 2.4 jdk15 import java.util.HashMap; import java.util.Map; import ...

  4. java中把map转换成list

    private String key;     private String value;          //把map转换成list的公共方法     public static List map ...

  5. 将map转换成json字符串

    import java.util.HashMap;import java.util.Map;import net.sf.json.JSONObject;public class Transfer {p ...

  6. 自动将Map转换成对象的方法

    实现自动将Map转换成对象,借助第三方工具commons-beanutils-1.8.0.jar+commons-logging.jar实现,需要遵守的规则创建的对象的属性名必须与map的key相同. ...

  7. java web 的map_javaweb开发过程中小工具系列之将Map转换成对象

    在javaweb项目的开发过程中,经常遇到要将一个Map集合转换成一个javabean对象,比如说将页面提交的数据封装到一个javabean中. 此小工具需要两个jar包 1:commons-bean ...

  8. JAVA中map转换成实体对象

    /** @ClassName:QueryVOToBeanUtil @author: 短笛吟风 @description:TODO @createDate: 2020/2/18 @version: 1. ...

  9. cdr怎么转换成psd转换为位图标准_如何将CorelDRAW中矢量图形转换为位图

    在CorelDRAW软件中,用户除了可以从外部获取位图图像外,还可以通过CorelDRAW中的相关命令将矢量图转换成位图进行使用,这样就可以应用各种位图图像的特殊处理效果,创造出别具风格的画面效果.下 ...

  10. cdr怎么转换成psd转换为位图标准_CorelDRAW中矢量图形如何转换为位图-cdr矢量图是怎样转换成位图的_好特教程...

    在CorelDRAW软件中,用户除了可以从外部获取位图图像外,还可以通过CorelDRAW中的相关命令将矢量图转换成位图进行使用,这样就可以应用各种位图图像的特殊处理效果,创造出别具风格的画面效果.下 ...

最新文章

  1. vs 添加ico图 到资源
  2. stm32采集脉冲信号_STM32 TIM 编码器模式采集编码器信号
  3. AI企业下一个使命:让生物特征数据使用走向阳光透明
  4. 如何自学python爬虫-小白如何快速学习Python爬虫?
  5. 大话WiFi省电模式
  6. 用线段拟合曲线,纯Java实现缠论笔段
  7. 灵魂画手:漫画图解 SSH
  8. HTTP-FLV的两种方式
  9. Document Builder: 如何分析document template里某个字段未被web service填充的问题
  10. java数据类型后加三个点...
  11. End-to-end目标检测算法的学习笔记
  12. java 文件删除不了
  13. 模拟电子技术基础概念
  14. lanhelper1.83 注册
  15. STM32L476入坑-2-STM32CubeMX安装
  16. decorview、window、dialog关系详解
  17. the oracle of bacon,python爬虫之遍历单个域名
  18. 0.96寸OLED显示屏标准库移植HAL库(模拟IIC) - 基于STM32
  19. 4月计算机网络原理试题,4月全国自考计算机网络原理试题及答案解析.docx
  20. HDU 5128 The E-pang Palace

热门文章

  1. 基于vue2使用vue-awesome-swiper 轮播图(踩坑记录)
  2. B站喷子脚本,bilibili喷人
  3. 利用vbs 运行程序 并使窗口隐藏
  4. HDU 2042 不容易系列之二
  5. 关于旅游景点主题的HTML网页设计——北京景点 7页(带订单购物车)
  6. python做游戏怎么实现窗口_pygame游戏之旅 创建游戏窗口界面
  7. html静态测试网页,Html静态网页测试-20210531213110.pptx-原创力文档
  8. 奥的斯服务器状态显示,OTIS服务器(TT)查看故障及清除故障的方法
  9. GeForce Experience 绕过登录与禁止自动更新
  10. 文件服务器限制流量,盘点天翼云盘,限制虽紧依然堪用,几个使用小技巧